home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / WWIV2.ZIP / VARDEC.H < prev    next >
C/C++ Source or Header  |  1995-12-11  |  22KB  |  687 lines

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