home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / UTIL / WWIVE / MYWIVE.ZIP / VARDEC.H < prev    next >
C/C++ Source or Header  |  1993-04-15  |  22KB  |  679 lines

  1. #ifndef _VARDEC_H_
  2. #define _VARDEC_H_
  3.  
  4. /* These are the variable type declarations.  There are a few things you
  5.  * should note while reading these:
  6.  *
  7.  * unsigned char = 8 bits
  8.  * unsigned short= 16 bits
  9.  * unsigned long = 32 bits
  10.  * float         = 32 bits floating point
  11.  *
  12.  * You will notice that usually there are two "unsigned char" declarations.
  13.  * The reason for this is that the first group of unsigned char variables are
  14.  * taken to be actual character.  The second group are using "unsigned char"
  15.  * as a numeric variable of 8 bits long.
  16.  *
  17.  * All variables are declared to be unsigned (excepting float, of course).
  18.  * The reason is that most variables have meaning only for positive numbers,
  19.  * so allowing negative values would cut the number of valid values in half,
  20.  * wasting one bit (oh no!).  Many people will say, "Why bother?", but since
  21.  * the negatives aren't used anyway, might as well allow the whole range of
  22.  * postive values.
  23.  */
  24.  
  25. /****************************************************************************/
  26. /*
  27.  * BE CAREFUL with this stuff.  DO NOT try to change MAX_DIRS - you'll have
  28.  * to do a lot of additional programming to support more than 64.  Changing
  29.  * MAX_SUBS to 64 SHOULD work.
  30.  *
  31.  * HOWEVER: if you #define EXTENDED (do it BEFORE the #ifdef STANDARD),
  32.  * be forewarned that you WILL have to reformat your userlist.
  33.  */
  34.  
  35. #define EXTENDED
  36. #ifdef STANDARD
  37. #endif
  38.  
  39. #ifdef EXTENDED
  40. #define MAX_SUBS 64
  41. #define MAX_DIRS 64
  42. #else
  43. #define MAX_SUBS 32
  44. #define MAX_DIRS 64
  45. #endif
  46.  
  47.  
  48. #if MAX_SUBS>32
  49. #define QSCN(i) (*((i>31)?(&thisuser.qscnptr2[i-32]):(&thisuser.qscnptr[i])))
  50. #else
  51. #define QSCN(i) (thisuser.qscnptr[i])
  52. #endif
  53. /****************************************************************************/
  54.  
  55.  
  56. /* DATA FOR EVERY USER */
  57. typedef struct {
  58.     char        name[31],        /* user's name */
  59.             realname[21],        /* user's real name */
  60.             lastname[21],           /* user's last name */
  61.             stretadd[38],           /* user's street address */
  62.             citstate[38],           /* user's city & state */
  63.             zipcode[7],        /* user's zipcode */
  64.             phone[13],        /* user's phone number */
  65.             pw[9],            /* user's password */
  66.             laston[9],        /* last date on */
  67.             firston[9],        /* first date on */
  68.             note[41],        /* sysop's note about user */
  69.             macros[3][81],        /* macro keys */
  70.             sex;            /* user's sex */
  71.     unsigned char    age,            /* user's age */
  72.             inact,            /* if deleted or inactive */
  73.             comp_type,        /* computer type */
  74.             defprot,        /* deflt transfer protocol */
  75.             defed,            /* default editor */
  76.             screenchars,screenlines,/* screen size */
  77.             sl,            /* security level */
  78.             dsl,            /* transfer security level */
  79.             exempt,            /* exempt from ratios, etc */
  80.             colors[8],        /* user's colors */
  81.             votes[20],        /* user's votes */
  82.             illegal,        /* illegal logons */
  83.             waiting,        /* number mail waiting */
  84.             sysopsub,        /* sysop sub board number */
  85.             ontoday;        /* num times on today */
  86.     unsigned short    homeuser,homesys,    /* where user can be found */
  87.             forwardusr,forwardsys,    /* where to forward mail */
  88.             msgpost,        /* number messages posted */
  89.             emailsent,        /* number of email sent */
  90.             feedbacksent,        /* number of f-back sent */
  91.             posttoday,        /* number posts today */
  92.             etoday,            /* number emails today */
  93.             ar,            /* board access */
  94.             dar,            /* directory access */
  95.             restrict,        /* restrictions on account */
  96.             ass_pts,        /* bad things the user did */
  97.             uploaded,        /* number files uploaded */
  98.             downloaded,        /* number files downloaded */
  99.             lastrate,        /* last baud rate on */
  100.             logons;            /* total number of logons */
  101.     unsigned long    msgread,        /* total num msgs read */
  102.             uk,            /* number of k uploaded */
  103.             dk,            /* number of k downloaded */
  104.             qscn,            /* which subs to n-scan */
  105.                         qscnptr[33],            /* q-scan pointers */
  106.             nscn1,nscn2,        /* which dirs to n-scan */
  107.             daten,            /* numerical time last on */
  108.             sysstatus;        /* status/defaults */
  109.     float        timeontoday,        /* time on today */
  110.             extratime,        /* time left today */
  111.             timeon,            /* total time on system */
  112.             pos_account,        /* $ credit */
  113.             neg_account,        /* $ debit */
  114.             gold;            /* game money */
  115.     unsigned char    bwcolors[8];        /* b&w colors */
  116.     unsigned char    month,day,year;        /* user's birthday */
  117.     unsigned int    emailnet,        /* email sent into net */
  118.             postnet;        /* posts sent into net */
  119.     unsigned short    fsenttoday1;        /* feedbacks today */
  120.         unsigned char   num_extended;           /* num lines of ext desc */
  121.         unsigned char   optional_val;           /* optional lines in msgs */
  122.     unsigned long   wwiv_regnum;            /* users WWIV reg number */
  123.     char            sex_type[2];            /* Answer questions? */
  124.     char            res[27];                /* reserved bytes */
  125. #if MAX_SUBS>32
  126.         unsigned long   qscn2;                  /* additional qscan ptr */
  127.         unsigned long   qscnptr2[MAX_SUBS-32];  /* additional quickscan ptrs */
  128. #endif
  129. } userrec;
  130.  
  131.  
  132. /* SECLEV DATA FOR 1 SL */
  133. typedef struct {
  134.     unsigned short    time_per_day,        /* time allowed on per day */
  135.             time_per_logon,        /* time allowed on per logon */
  136.             messages_read,        /* messages allowed to read */
  137.             emails,            /* number emails allowed */
  138.             posts;            /* number posts allowed */
  139.     unsigned long    ability;        /* bit mapped abilities */
  140. } slrec;
  141.  
  142.  
  143. /* AUTO-VALIDATION DATA */
  144. typedef struct {
  145.     unsigned char    sl,            /* SL */
  146.             dsl;            /* DSL */
  147.     unsigned short    ar,            /* AR */
  148.             dar,            /* DAR */
  149.             restrict;        /* restrictions */
  150. } valrec;
  151.  
  152. typedef struct {
  153.         char            extension[4],           /* extension for archive */
  154.                         arca[32],
  155.                         arce[32],
  156.                         arcl[32];
  157. } arcrec;
  158.  
  159.  
  160. /* STATIC SYSTEM INFORMATION */
  161. typedef struct {
  162.     char        newuserpw[21],        /* new user password */
  163.             systempw[21],        /* system password */
  164.             msgsdir[81],        /* path for msgs directory */
  165.             gfilesdir[81],        /* path for gfiles dir */
  166.             datadir[81],        /* path for data directory */
  167.             dloadsdir[81],        /* path for dloads dir */
  168.             ramdrive,        /* drive for ramdisk */
  169.             tempdir[81],        /* path for temporary directory */
  170.                         resx[84],               /* reserved for never */
  171.             bbs_init_modem[51],    /* modem initialization cmd */
  172.             answer[21],        /* modem answer cmd */
  173.             connect_300[21],    /* modem responses for */
  174.             connect_1200[21],    /* connections made at */
  175.             connect_2400[21],    /* various speeds */
  176.             connect_9600[21],
  177.             connect_19200[21],
  178.             no_carrier[21],        /* modem disconnect */
  179.             ring[21],        /* modem ring */
  180.             terminal[21],        /* DOS cmd for run term prg */
  181.             systemname[51],        /* BBS system name */
  182.             systemphone[13],    /* BBS system phone number */
  183.             sysopname[51],        /* sysop's name */
  184.             executestr[51];        /* mail route path name */
  185.     unsigned char    newusersl,        /* new user SL */
  186.             newuserdsl,        /* new user DSL */
  187.             maxwaiting,        /* max mail waiting */
  188.             comport[5],        /* what connected to comm */
  189.             com_ISR[5],        /* Com Interrupts */
  190.             primaryport,        /* primary comm port */
  191.             newuploads,        /* file dir new uploads go */
  192.             closedsystem;        /* if system is closed */
  193.     unsigned short    systemnumber,        /* BBS system number */
  194.             baudrate[5],        /* Baud rate for com ports */
  195.             com_base[5],        /* Com base addresses */
  196.             maxusers,        /* max users on system */
  197.             newuser_restrict,    /* new user restrictions */
  198.             sysconfig,        /* System configuration */
  199.             sysoplowtime,        /* Chat time on */
  200.             sysophightime,        /* Chat time off */
  201.             executetime;        /* time to run mail router */
  202.     float        req_ratio,        /* required up/down ratio */
  203.             newusergold;        /* new user gold */
  204.     slrec        sl[256];        /* security level data */
  205.     valrec        autoval[10];        /* sysop quik-validation data*/
  206.     char        hangupphone[21],    /* string to hang up phone */
  207.             pickupphone[21];    /* string to pick up phone */
  208.     unsigned int    netlowtime,        /* net time on */
  209.             nethightime;        /* net time off */
  210.     char            connect_300_a[21],    /* alternate connect str's */
  211.             connect_1200_a[21],
  212.             connect_2400_a[21],
  213.             connect_9600_a[21],
  214.             connect_19200_a[21];
  215.         arcrec          arcs[4];
  216.         char            beginday_c[51],
  217.                         logon_c[51];
  218.         int             userreclen,
  219.                         waitingoffset,
  220.                         inactoffset;
  221.         char            newuser_c[51];
  222.         unsigned long   wwiv_reg_number;
  223.         char            dial_prefix[21];
  224.         float           post_call_ratio;
  225.         char            upload_c[51];
  226.         char            dszbatchdl[81];
  227.         char            modem_type[9];
  228.         char            batchdir[81];
  229.         char            res[39];               /* RESERVED */
  230. } configrec;
  231.  
  232.  
  233.  
  234. /* DYNAMIC SYSTEM STATUS */
  235. typedef struct {
  236.     char        date1[9],        /* last date active */
  237.             date2[9],        /* date before now */
  238.             date3[9],        /* two days ago */
  239.             log1[13],        /* yesterday's log */
  240.             log2[13],        /* two days ago log */
  241.             gfiledate[9],        /* date gfiles last updated */
  242.             resx[9];        /* reserved for nothing */
  243.     unsigned short    users,            /* Current number of users */
  244.             callernum,        /* Current caller number */
  245.             callstoday,        /* Number of calls today */
  246.             msgposttoday,        /* Messages posted today*/
  247.             emailtoday,        /* Email sent today */
  248.             fbacktoday,        /* Feedback sent today */
  249.             uptoday,        /* files uploaded today */
  250.             activetoday;        /* Minutes active today */
  251.     unsigned long    qscanptr;        /* Q-scan pointer value */
  252.     char        amsganon;        /* auto-message anony stat */
  253.     unsigned short    amsguser;        /* user who wrote a-msg */
  254.     unsigned long    callernum1;        /* caller number */
  255.         unsigned int    net_edit_stuff;         /* word for net editor */
  256.         unsigned int    wwiv_version;           /* tell what version it is */
  257.         unsigned int    net_version;            /* tell what version of net */
  258.         float           net_bias;               /* network bias factor */
  259.         long            last_connect,           /* date last connect.net */
  260.                         last_bbslist;           /* date last bbslist.net */
  261.         float           net_req_free;           /* net free factor def 3 */
  262.         char            res[31];                /* RESERVED */
  263. } statusrec;
  264.  
  265.  
  266.  
  267. /* MESSAGE BASE INFORMATION */
  268. typedef struct {
  269.     char        name[41],        /* board name */
  270.             filename[9],        /* board database filename */
  271.             key;            /* board special key */
  272.     unsigned char    readsl,            /* sl required to read */
  273.             postsl,            /* sl required to post */
  274.             anony,            /* anonymous board? */
  275.             age;            /* minimum age for sub */
  276.     unsigned short    maxmsgs,        /* max # of msgs */
  277.             ar,            /* AR for sub-board */
  278.             storage_type,        /* how messages are stored */
  279.             type;            /* 4 digit board type */
  280. } subboardrec;
  281.  
  282.  
  283.  
  284. /* UPLOAD DIRECTORY INFORMATION */
  285. typedef struct {
  286.     char        name[41],        /* directory name */
  287.             filename[9],        /* direct database filename */
  288.             path[81];        /* filename path */
  289.     unsigned char    dsl,            /* DSL for directory */
  290.             age;            /* minimum age for directory */
  291.     unsigned short    dar,            /* DAR for directory */
  292.             maxfiles,        /* max files for directory */
  293.             mask,            /* file type mask */
  294.             type;            /* 4 digit directory type */
  295. } directoryrec;
  296.         
  297.  
  298.  
  299. /* QUICK REFERNCE TO FIND USER NUMBER FROM NAME */
  300. typedef struct {
  301.     char        name[31];
  302.     unsigned short    number;
  303. } smalrec;
  304.  
  305.  
  306.  
  307. /* TYPE TO TELL WHERE A MESSAGE IS STORED */
  308. typedef struct {
  309.     unsigned char    storage_type;        /* how it is stored */
  310.     unsigned long    stored_as;        /* where it is stored */
  311. } messagerec;
  312.  
  313.  
  314.  
  315. /* DATA HELD FOR EVERY POST */
  316. typedef struct {
  317.     char        title[81];        /* title of post */
  318.     unsigned char    anony,            /* anony-stat of message */
  319.             status;            /* bit-mapped status */
  320.     unsigned short    ownersys,owneruser;    /* who posted it */
  321.     unsigned long    qscan,            /* qscan pointer */
  322.             daten;            /* numerical date posted */
  323.     messagerec    msg;            /* where to find it */
  324. } postrec;
  325.  
  326.  
  327.  
  328. /* DATA HELD FOR EVERY E-MAIL OR F-BACK */
  329. typedef struct {
  330.     char        title[81];        /* E-mail title */
  331.     unsigned char    anony,            /* anonymous mail? */
  332.             status;            /* status for e-mail */
  333.     unsigned short    fromsys,fromuser,    /* originating system,user */
  334.             tosys,touser;        /* destination system,user */
  335.     unsigned long    daten;            /* date it was sent */
  336.     messagerec    msg;            /* where to find it */
  337. } mailrec;
  338.  
  339.  
  340.  
  341. /* SHORT RESPONSE FOR USER, TELLING HIS MAIL HAS BEEN READ */
  342. typedef struct {
  343.     char        message[81];        /* short message to user */
  344.     unsigned short    tosys,touser;        /* who it is to */
  345. } shortmsgrec;
  346.  
  347.  
  348.  
  349. /* VOTING RESPONSE DATA */
  350. typedef struct {
  351.     char        response[81];        /* Voting question response */
  352.     unsigned short    numresponses;        /* number of responses */
  353. } voting_response;
  354.  
  355.  
  356.  
  357. /* VOTING DATA INFORMATION */
  358. typedef struct {
  359.     char        question[81];        /* Question */
  360.     unsigned char    numanswers;        /* number of responses */
  361.     voting_response    responses[20];        /* actual responses */
  362. } votingrec;
  363.  
  364.  
  365.  
  366. /* DATA HELD FOR EVERY UPLOAD */
  367. typedef struct {
  368.     char        filename[13],        /* filename */
  369.             description[59],    /* file description */
  370.             date[9],        /* date u/l'ed */
  371.             upby[46];        /* name of upload user */
  372.     unsigned char    filetype;        /* file type for apples */
  373.     unsigned short    numdloads,        /* number times d/l'ed */
  374.             ownersys,ownerusr,    /* who uploaded it */
  375.             mask;            /* file type mask */
  376.     unsigned long    daten,            /* date uploaded */
  377.             numbytes;        /* number bytes long file is */
  378. } uploadsrec;
  379.  
  380.  
  381.  
  382. /* ZLOG INFORMATION FOR PAST SYSTEM USAGE */
  383. typedef struct {
  384.     char        date[9];        /* zlog for what date */
  385.     unsigned short    active,            /* number minutes active */
  386.             calls,            /* number calls */
  387.             posts,            /* number posts */
  388.             email,            /* number e-mail */
  389.             fback,            /* number f-back */
  390.             up;            /* number uploads */
  391. } zlogrec;
  392.  
  393.  
  394.  
  395. /* DATA FOR OTHER PROGRAMS AVAILABLE */
  396. typedef struct {
  397.     char        filename[81],        /* filename for .chn file */
  398.             description[81];    /* description of it */
  399.     unsigned char    sl,            /* seclev restriction */
  400.             ansir;            /* if ANSI required */
  401.     unsigned short    ar;            /* AR restriction */
  402. } chainfilerec;
  403.  
  404.  
  405.  
  406. /* DATA FOR EXTERNAL PROTOCOLS */
  407. typedef struct {
  408.     char        description[81],    /* protocol description */
  409.             receivefn[81],        /* receive filename */
  410.             sendfn[81];        /* send filename */
  411.     unsigned short    ok1,ok2,        /* if sent */
  412.             nok1,nok2;        /* if not sent */
  413. } externalrec;
  414.  
  415. typedef struct {
  416.     char        description[81],    /* protocol description */
  417.             receivefn[81],        /* receive filename */
  418.                         sendfn[81],             /* send filename */
  419.                         receivebatchfn[81],     /* batch receive cmd */
  420.                         sendbatchfn[81],        /* batch send cmd */
  421.                         bibatchfn[81];          /* batch send/receive cmd */
  422.         unsigned short  ok1;                    /* if sent */
  423.         unsigned short  othr;                   /* other flags */
  424.         char            pad[22];
  425. } newexternalrec;
  426.  
  427.  
  428. /* DATA FOR EXTERNAL EDITORS */
  429. typedef struct {
  430.     char        description[81],    /* description of editor */
  431.             filename[81];        /* how to run the editor */
  432.     unsigned long    config;            /* configuration for editor */
  433.         char        filenamecon[81];    /* how to run locally */
  434.     char        res[119];
  435. } editorrec;
  436.  
  437.  
  438.  
  439. /* DATA FOR CONVERSION OF MAIN MENU KEYS TO SUB-BOARD NUMBERS */
  440. typedef struct {
  441.     char        keys[3];
  442.     int        subnum;
  443. } usersubrec;
  444.  
  445.  
  446.  
  447. typedef struct {
  448.         char            sending;
  449.         char            filename[13];
  450.         short           dir;
  451.         float           time;
  452.         long            len;
  453. } batchrec;
  454.  
  455. typedef enum {
  456.   xf_up, xf_down, xf_up_temp, xf_down_temp, xf_up_batch, xf_down_batch, xf_bi, xf_none
  457. } xfertype;
  458.  
  459. /* userrec.inact */
  460. #define inact_deleted 0x01
  461. #define inact_inactive 0x02
  462.  
  463. /* userrec.exempt */
  464. #define exempt_ratio 0x01
  465. #define exempt_time 0x02
  466. #define exempt_all 0x04
  467. #define exempt_post 0x08
  468.  
  469. /* userrec.restrict */
  470. #define restrict_logon 0x0001
  471. #define restrict_chat 0x0002
  472. #define restrict_validate 0x0004
  473. #define restrict_automessage 0x0008
  474. #define restrict_anony 0x0010
  475. #define restrict_post 0x0020
  476. #define restrict_email 0x0040
  477. #define restrict_vote 0x0080
  478. #define restrict_auto_msg_delete 0x0100
  479. #define restrict_net 0x0200
  480. #define restrict_upload 0x0400
  481.  
  482. #define restrict_string "LCMA*PEVKNU     "
  483.  
  484. /* userrec.sysstatus */
  485. #define sysstatus_ansi 0x0001
  486. #define sysstatus_color 0x0002
  487. #define sysstatus_music 0x0004
  488. #define sysstatus_pause_on_page 0x0008
  489. #define sysstatus_expert 0x0010
  490. #define sysstatus_smw 0x0020
  491. #define sysstatus_full_screen 0x0040
  492. #define sysstatus_nscan_file_system 0x0080
  493. #define sysstatus_funky_colors 0x0100
  494. #define sysstatus_clr_scrn 0x0200
  495.  
  496. /* slrec.ability */
  497. #define ability_post_anony 0x0001
  498. #define ability_email_anony 0x0002
  499. #define ability_read_post_anony 0x0004
  500. #define ability_read_email_anony 0x0008
  501. #define ability_limited_cosysop 0x0010
  502. #define ability_cosysop 0x0020
  503. #define ability_val_net 0x0040
  504.  
  505. /* subboardrec.anony */
  506. #define anony_enable_anony 0x01
  507. #define anony_enable_dear_abby 0x02
  508. #define anony_force_anony 0x04
  509. #define anony_real_name 0x08
  510. #define anony_val_net 0x10
  511. #define anony_ansi_only 0x20
  512. #define anony_no_tag 0x40
  513. #define anony_require_sv 0x80
  514.  
  515. /* postrec.anony, mailrec.anony */
  516. #define anony_sender 0x01
  517. #define anony_sender_da 0x02
  518. #define anony_sender_pp 0x03
  519. #define anony_receiver 0x10
  520. #define anony_receiver_da 0x20
  521. #define anony_receiver_pp 0x30
  522.  
  523. /* directoryrec.mask */
  524. #define mask_PD 0x0001
  525. #define mask_no_uploads 0x0004
  526. #define mask_archive 0x0008
  527. #define mask_pending_batch 0x0010
  528. #define mask_no_ratio 0x0020
  529. #define mask_extended 0x8000
  530.  
  531. /* postrec.status */
  532. #define status_unvalidated 0x01
  533. #define status_delete 0x02
  534. #define status_no_delete 0x04
  535. #define status_pending_net 0x08
  536. #define status_post_source_verified 0x10
  537.  
  538. /* mailrec.status */
  539. #define status_multimail 0x01
  540. #define status_source_verified 0x02
  541.  
  542. /* configrec.sysconfig */
  543. #define sysconfig_no_local 0x0001
  544. #define sysconfig_no_beep 0x0002
  545. #define sysconfig_high_speed 0x0004
  546. #define sysconfig_off_hook 0x0008
  547. #define sysconfig_two_color 0x0010
  548. #define sysconfig_flow_control 0x0020
  549. #define sysconfig_printer 0x0040
  550. #define sysconfig_list 0x0080
  551. #define sysconfig_no_xfer 0x0100
  552. #define sysconfig_2_way 0x0200
  553. #define sysconfig_no_alias 0x0400
  554. #define sysconfig_all_sysop 0x0800
  555. #define sysconfig_shrink_term 0x1000
  556. #define sysconfig_free_phone 0x2000
  557. #define sysconfig_log_dl 0x4000
  558.  
  559. /* editorrec.config */
  560. #define config_80_25 0x0001
  561.  
  562. #define ansir_ansi 0x01
  563. #define ansir_no_DOS 0x02
  564. #define ansir_no_300 0x04
  565. #define ansir_shrink 0x08
  566. #define ansir_no_pause 0x10
  567.  
  568. /* newexternalrec.othr */
  569. #define othr_error_correct 0x0001
  570. #define othr_bimodem 0x0002
  571.  
  572. #define PREV 1
  573. #define NEXT 2
  574. #define DONE 4
  575. #define NUM_ONLY 1
  576. #define UPPER_ONLY 2
  577. #define ALL 4
  578. #define SET 8
  579.  
  580.  
  581. struct line {
  582.     char        text[160];
  583.     struct line     *prev,*next;
  584. };
  585.  
  586.  
  587. typedef struct {
  588.   int x1,y1,topline1,curatr1;
  589.   char *scrn1;
  590. } screentype;
  591.  
  592. typedef struct{
  593.   char name[13];
  594.   int len;
  595. } ext_desc_type;
  596.  
  597. typedef struct {
  598.     char        name[41],        /* g-file section name */
  599.             filename[9];        /* g-file database filename */
  600.     unsigned char    sl,            /* sl required to read */
  601.             age;            /* minimum age for section */
  602.     unsigned short    maxfiles,        /* max # of files */
  603.             ar;            /* AR for g-file section */
  604. } gfiledirrec;
  605.  
  606. typedef struct {
  607.     char        description[81],    /* description of file */
  608.             filename[13];        /* filename of file */
  609.         long        daten;            /* date added */
  610. } gfilerec;
  611.  
  612. typedef struct {
  613.         char            curspeed[23];           /* description of speed */
  614.         char            return_code[23];        /* modem result code */
  615.         unsigned short  modem_speed,            /* speed modems talk at */
  616.                         com_speed;              /* speed com port runs at */
  617. } resultrec;
  618.  
  619.  
  620. #define VERSION_NUMBER "WWIV v4.20e"
  621. #define max_buf 1024
  622. #define MSG_COLOR 0
  623. #define MAX_BATCH 50
  624.  
  625. #define INT_SAVE_21 0x69
  626. #define INT_POINT_FUNCS 0x6a
  627. #define INT_SHRINK 0x6b
  628.  
  629. /****************************************************************************/
  630. /* modem info structure */
  631.  
  632. #define mode_norm     1   /* normal status */
  633. #define mode_ring     2   /* phone is ringing */
  634. #define mode_dis      3   /* disconnected (no connection) */
  635. #define mode_err      4   /* error encountered */
  636. #define mode_ringing  5   /* remote phone is ringing */
  637. #define mode_con      6   /* connection established */
  638. #define mode_ndt      7   /* no dial tone */
  639. #define mode_fax      8   /* fax connection */
  640.  
  641. #define flag_as       1   /* asymmetrical baud rates */
  642. #define flag_ec       2   /* error correction in use */
  643. #define flag_dc       4   /* data compression in use */
  644. #define flag_fc       8   /* flow control should be used */
  645. #define flag_append   16  /* description string should be appended */
  646.  
  647.  
  648. typedef struct {
  649.   char result[41];
  650.   char description[31];
  651.   unsigned int main_mode;
  652.   unsigned int flag_mask;
  653.   unsigned int flag_value;
  654.   unsigned int com_speed;
  655.   unsigned int modem_speed;
  656. } result_info;
  657.  
  658. typedef struct {
  659.   unsigned short ver;
  660.   char name[81];
  661.   char init[161];
  662.   char setu[161];
  663.   char ansr[81];
  664.   char pick[81];
  665.   char hang[81];
  666.   char dial[81];
  667.  
  668.   char sepr[10];
  669.  
  670.   result_info defl;
  671.   unsigned int num_resl;
  672.   result_info resl[1];
  673. } modem_info;
  674.  
  675. /****************************************************************************/
  676.  
  677.  
  678. #endif
  679.