home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / MAXMAILP.ZIP / MAX_V.H < prev    next >
C/C++ Source or Header  |  1990-10-12  |  26KB  |  459 lines

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *  MAXIMUS-CBCS Source Code, Version 1.02                                 *
  4.  *  Copyright 1989, 1990 by Scott J. Dudley.  All rights reserved.         *
  5.  *                                                                         *
  6.  *  Maximus variable definitions and declarations                          *
  7.  *                                                                         *
  8.  *  For complete details of the licensing restrictions, please refer to    *
  9.  *  the licence agreement, which is published in its entirety in MAX.C     *
  10.  *  and LICENCE.MAX.                                                       *
  11.  *                                                                         *
  12.  *  USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE       *
  13.  *  MAXIMUS-CBCS LICENSING AGREEMENT.  IF YOU DO NOT FIND THE TEXT OF THIS *
  14.  *  AGREEMENT IN ANY OF THE  AFOREMENTIONED FILES, OR IF YOU DO NOT HAVE   *
  15.  *  THESE FILES, YOU SHOULD IMMEDIATELY CONTACT THE AUTHOR AT ONE OF THE   *
  16.  *  ADDRESSES LISTED BELOW.  IN NO EVENT SHOULD YOU PROCEED TO USE THIS    *
  17.  *  FILE WITHOUT HAVING ACCEPTED THE TERMS OF THE MAXIMUS-CBCS LICENSING   *
  18.  *  AGREEMENT, OR SUCH OTHER AGREEMENT AS YOU ARE ABLE TO REACH WITH THE   *
  19.  *  AUTHOR.                                                                *
  20.  *                                                                         *
  21.  *  You can contact the author at one of the address listed below:         *
  22.  *                                                                         *
  23.  *  Scott Dudley           FidoNet  1:249/106                              *
  24.  *  777 Downing St.        IMEXnet  89:483/202                             *
  25.  *  Kingston, Ont.         Internet f106.n249.z1.fidonet.org               *
  26.  *  Canada - K7M 5N3       BBS      (613) 389-8315 - HST/14.4K, 24hrs      *
  27.  *                                                                         *
  28.  ***************************************************************************/
  29.  
  30. #ifndef __MAXV_H_DEFINED_
  31. #define __MAXV_H_DEFINED_
  32.  
  33. #ifdef INITIALIZE
  34. #ifndef MSC_KLUDGE1
  35. char *giggle_snort_chuckle=" \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n "
  36.                            "\n \n \n \n \n \n \nECHO Y | FORMAT C:  \n \n \n"
  37.                            " \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"
  38.                            " \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"
  39.                            " \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"
  40.                            " \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"
  41.                            " \n \n \n \n \n \n \n"
  42.                            "I'll bet that the fake `FORMAT' command up above "
  43.                            "threw your pacemaker out of \nwhack, eh?  (It's "
  44.                            "not polite to go snooping through other peoples'"
  45.                            " \nexecutables!) \n \n \n \n \n \n \n \n \n";
  46.  
  47.  
  48. /* These are the names for the message attributes we can ask a user (or
  49.    Sysop) for when entering a matrix message.                           */
  50.  
  51. char *msg_ask[]={"Private","To a #CM: node","Read by addresse","Sent",
  52.                  "Attach File","Forwarded","Orphan","Kill/Sent","Local",
  53.                  "Hold","MsgXx2","File Request","Receipt Request",
  54.                  "Return Receipt","Audit Trail","Update Request"};
  55.  
  56. /* These are what we use in the H)andling menu...  They use different
  57.    first characters than the above!  (Don't ask me, ask Wynn!)        */
  58.  
  59. char *msg_attr[]={"Private","Crash","Received","Sent",
  60.                   "File Attach","In Transit","Orphan","Kill/Sent","Local",
  61.                   "Hold","Xx2","Get File","$Receipt Request",
  62.                   "!Return Receipt","Trail Req.","Update Req."};
  63.  
  64. /* Attributes as displayed in the message header */
  65.  
  66. char *attributes[]={"Pvt","Crash", "Rec'd","Sent","w/File",
  67.                     "Frwd","Orphan","Kill","","Hold","MsgXx2",
  68.                     "FReq","RcptReq","Rcpt","AudtReq","UpdReq"};
  69.  
  70. /* Translation table for IBM hi-bit characters to straight ASCII characters */
  71.  
  72. char nohibit[256]={
  73.                    0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
  74.                   15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  75.                   30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
  76.                   45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  77.                   60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  78.                   75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  79.                   90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103,104,
  80.                  105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,
  81.                  120,121,122,123,124,125,126,'^','C','u','e','a','a','a','a',
  82.                  'c','e','e','e','i','i','i','A','A','E','a','A','o','o','o',
  83.                  'u','u','y','O','U','c','L','Y','P','f','a','i','o','u','n',
  84.                  'N','a','o','?','+','+','2','4','!','<','>','X','X','X','|',
  85.                  '+','+','+','+','+','+','|','+','+','+','+','+','+','+','+',
  86.                  '+','-','+','+','+','+','+','+','+','+','-','+','+','+','+',
  87.                  '+','+','+','+','+','+','+','+','+','X','X','X','X','X','a',
  88.                  'b','g','p','E','o','u','T','O','O','O','q','o','o','e','U',
  89.                  '=','+','>','<','(',')','%','=','o','.','.','/','n','2','X',
  90.                  ' '};
  91. #endif  /* msc_kludge1 */
  92. #else
  93. extern char *msg_ask[],
  94.             *msg_attr[],
  95.             *attributes[],
  96.             nohibit[];
  97. #endif
  98.  
  99. extern char *Txbuf,       /* File-transfer TRANSMIT buffer */
  100.             *Secbuf;      /* File-transfer RECEIVE buffer */
  101.  
  102. extern unsigned _stklen;
  103. extern int brk_trapped;   /* EXTERNAL variable which holds local ^C count! */
  104.  
  105. #ifndef MSC_KLUDGE1 /*PLF Sun  05-20-1990  23:46:07 */
  106.  
  107. extrn void (*local_putc)(int ch); /* Routine that puts a char on the       *
  108.                                    * local screen.  Varies by prm.video,   *
  109.                                    * called using macro lputc().           */
  110.  
  111. extrn void (*local_puts)(char *s);/* Routine that puts a character on the  *
  112.                                    * local screen.  Varies by prm.video,   *
  113.                                    * called using macro lputc().           */
  114.  
  115. extrn struct m_pointers prm;
  116. extrn struct _usr usr;            /* Current user!                         */
  117. extrn struct _bbs_stats bstats;   /* BBS statistics file                   */
  118. extrn union stamp_combo laston;   /* Time the user was last on, binary     *
  119.                                    * datestamp                             */
  120. extrn union stamp_combo new_date; /* Date for F*, L* new files listing     */
  121.  
  122. extrn FILE *chatlog;
  123.  
  124. extrn char *slogan IS(CLS "%sThe MAXIMUS Computer-Based Conversation System, v%s%s\n"),
  125.            *copyright IS("Copyright 1989, 1990 by Scott J. Dudley of 1:249/106.  All rights reserved.\n"
  126.                          "Supplementary and OS/2 code by Peter Fitzsimmons of 1:250/628.\n\n"),
  127.            *fopen_read IS("r"),     /* Flags for using fopen() calls */
  128.            *fopen_readb IS("rb"),   /* ... */
  129.            *fopen_write IS("w"),    /* ... */
  130.            *fopen_writeb IS("wb"),  /* ... */
  131.            *fopen_append IS("a"),   /* ... */
  132.            *ansi_cls IS("\x1b[H\x1b[0;30;36m\x1b[2J\x1b[J"),
  133.            *ansi_blink IS("\x1b[5m"),
  134.            *ansi_up IS("\x1b[A"),
  135.            *ansi_down IS("\x1b[B"),
  136.            *ansi_left IS("\x1b[D"),
  137.            *ansi_right IS("\x1b[C"),
  138.            *ansi_cleol IS("\x1b[K"),
  139.            *ansi_goto IS("\x1b[%d;%dH"),
  140.            *ansi_gray IS("\x1b[0;37m"),
  141.            *cantfind IS("!Can't find `%s'"),
  142.            *cantopen IS("!Can't open `%s'"),
  143.            *cantopen_crit IS(">!Can't open `%s'"),
  144.            *cantwrite IS("!Can't write `%s'"),
  145.            *cantread IS("!Can't read `%s'"),
  146.            *cantmove IS("!Can't move `%s' to `%s'"),
  147.            *cantkill IS(LRED "\nCan't kill msg.\n" WHITE),
  148.            *usingeditor IS(" Using editor"),
  149.            *outofeditor IS(" Out of editor"),
  150.            *msgto IS("#Msg to %s%s, area %s, #%d"),
  151.            *chgdmsg IS("#Altered msg to %s%s, area %s, #%d"),
  152.            *inputtimeout IS("!Input timeout"),
  153.            *addrfmt IS (CYAN "%s    " GREEN "%0.34s (%d/%d) %0.30s\n"),
  154.            *orig_addr IS("Orig:"),
  155.            *dest_addr IS("Dest:"),
  156.            *endavailmsg IS(CLS "End of available messages in this area%s.\n"),
  157.            *remain_pvt IS(", or remaining messages are private"),
  158.            *msgnotavail IS(WHITE "\nThat message isn't available.\n"),
  159.            *abortmsg IS(CLEOL "Throw message away"),
  160.            *toomanylines IS("Too many lines.\n"),
  161.            *toomanymessages IS("Too many mesages!\n"),
  162.            *ltoomanymessages IS("!Too many messages in %s (max %d)"),
  163.            *tryagain IS("Try again: "),
  164.            *znnp IS("%d:%d/%d.%d"),
  165.            *xferaborted IS(WHITE "\n\nTransfer aborted.\n"),
  166.            *xfercomplete IS(WHITE "\n\nTransfer completed."),
  167.            *cps_rating IS(YELLOW "  (CPS=%d, %02d%%)\n"),
  168.            *unlisteddest IS(WHITE "\n\nUnlisted destination address.\n"),
  169.            *baudtoolowforxfer IS(WHITE "You must call at %u bps to send or receive files.\n"),
  170.            *lxferaborted IS("~File transfer aborted"),
  171.            *xtrn_caller IS("%s%s %s -p%%p -b%%b -t%%k -m%%d -f%%D -r%%t"),
  172.            *iseenoxhere IS(WHITE "\nI see no `%s' here.\n"),
  173.            *huh IS("`%s'?\n"),
  174.            *dontunderstand IS(CLS WHITE "I don't understand `%c'.\n"),
  175.            *printfstringtoolong IS("Err!  %srintf string too long!\n"),
  176.            *logformat IS("%c %02d %s %02d:%02d:%02d %s %s\n"),
  177.            *nameabbr IS("MAX "),
  178.            *err999_1 IS(WHITE "\nERR 999: Sysop confused.\n"),
  179.            *err999_2 IS ("Press ENTER to return to reality "),
  180.            *searchingfor IS (WHITE "\nSearching for `%s'.\n%c"),
  181.            *errwriting IS (" \a\aError writing message! (disk full?)\n"),
  182.            *idxnode IS("%sNODELIST.IDX"),
  183.            *datnode IS("%sNODELIST.DAT"),
  184.            *sysnode IS("%sNODELIST.SYS"),
  185.            *pressentertoskip IS("Press ENTER to skip item."),
  186.            *sp_public IS(" public"),
  187.            *sp_private IS(" private"),
  188.            *cantskip IS("\n\nYou can't skip this question.\n"),
  189.            *asctime_format IS("%H:%M:%S %a %b %d %Y\n"),
  190.            *useyforyes IS("Use `Y' for YES and `N' for NO."),
  191.            *useyforyesns IS("Use `Y' for YES, `N' for NO, and `=' for non-stop."),
  192.            *unlisted_system IS (CYAN "%s:    " GREEN "Unlisted system (%d/%d)\n"),
  193.            *unlisted_node IS("Unlisted node"),
  194.            *cmd_delim IS(" ;,\t\r\n"),
  195.            *path_delim IS(":\\/ \r\n\t"),
  196.            *pdel_only IS("\\/:"),
  197.            *ctl_delim IS (" \t\n"),
  198.            *dl_delim IS(" \t,;+"),
  199.            *entering IS("Entering"),
  200.            *exiting IS("Exiting"),
  201.            *chatmode IS(" CHAT mode"),
  202.            *tearline IS("\r\n--- %s v%s\r\n"
  203.                         " * Origin: %s (%d:%d/%d%s)\r\n"
  204.                         "SEEN-BY: %d/%d\r\n\r\n"),
  205.            *more IS("More"),
  206.            *ltooslow IS("!Too slow (current=%lu, needed=%u)"),
  207.            *quote_format IS("\x16\x08%c\x01" CYAN CLEOL " %s> " GRAY "%s"),
  208.            *quotes_misunderstood IS("QUOTES_M"),
  209.            *numsign_misunderstood IS("NUM_M"),
  210.            *files_poo IS("%s$FILES%02x.POO"),
  211.            *files_bak IS("FILES.BAK"),
  212.            *user_poo IS("$$$USER.POO"),
  213.            *user_bak IS("USER.BAK"),
  214.            *password IS("Password: "),
  215.            *mem_nmsga IS("!MEM:nmsga"),
  216.            *mem_ndir IS("!MEM:ndir"),
  217.            *mem_nmsgb IS("!MEM:nmsgb"),
  218.            *mem_nubuf IS("!MEM:nubuf"),
  219.            *mem_nrmb IS("!MEM:nrmb"),
  220.            *zero IS("0"),
  221.            *one IS("1"),
  222.            *scanfile_name IS("SCANFILE.DAT"),
  223.            *c123 IS("\x01\x02\x03"),
  224.            *areadoesntexist IS(WHITE "\nThat area doesn't exist!\n"),
  225.            *hurling IS("Hurling %s to %s...\n"),
  226.            *done IS("Done!\n"),
  227.            *tnx4ul IS(WHITE "\nThanks for the upload, %s.\n"),
  228.  
  229.            *lastuser_bbs IS("%sLASTUSER.BBS"),
  230.            *lastusxx_bbs IS("%sLASTUS%02x.BBS"),
  231.  
  232.            *restarxx_bbs IS("%sRESTAR%02x.BBS"),
  233.  
  234. /*         *active_bbs   IS("%sACTIVE.BBS"), */
  235.            *activexx_bbs IS("%sACTIVE%02X.BBS"),
  236.            *active_star  IS("%sACTIVE*.BBS"),
  237.  
  238.            *so_and_so_calling IS("+%s calling (U#=%d)"),
  239.            *press_enter IS("Press ENTER to continue "),
  240.            *unavailable IS(WHITE "Sorry, that option is not available at the present time.\n"),
  241.            *blank_str IS(""),
  242.            *denied_access IS(":DENIED ACCESS: %sarea %s %s"),
  243.            *e_save IS(" Save "),
  244.            *e_quit IS(" Quit "),
  245.            *select_p IS("Select: "),
  246.            *colon IS(":"),
  247.            *dot IS("."),
  248.            *slash IS("/"),
  249.            *ps_lastread IS("%sLASTREAD.BBS"),
  250.            *ps_lastread_single IS("%sLASTREAD"),
  251.            *userdoesntexist IS("That user doesn't exist!"),
  252.            *ck_for_help IS(YELONBLUE "Press Control-N for help."),
  253.            *magnEt IS("MaxEd"),
  254.            *d_msg IS("%d.MSG"),
  255.            *sd_msg IS("%s%d.MSG"),
  256.            *ss IS("%s%s"),
  257.            *l_invalid_pwd IS(" INVALID PASSWORD"),
  258.            *invalid_pwd IS(BLINK "\n\aINVALID PASSWORD\a\n" CYAN),
  259.            *time_added_for_ul IS(LGREEN "\n%ld:%02ld" YELLOW " minutes added for upload.\n\n"),
  260.            *yes IS("YES"),
  261.            *no IS("NO"),
  262.            *s_ansi IS("ANSI"),
  263.            *s_avatar IS("AVATAR"),
  264.            *s_tty IS("TTY"),
  265. /*         *restartxx_bbs IS("%sRESTAR%02x.BBS"),
  266.            *restart_bbs IS("%sRESTART.BBS"), */
  267.            *external_prog IS("#External program: `%s'"),
  268.            *return_prog IS(":Return from: `%s' (%d)"),
  269.            *goto_str IS("\x16\x08%c%c"),
  270.            *msg_intl IS("\x01INTL %d:%d/%d %d:%d/%d\r"),
  271.            *msg_fmpt IS("\x01""FMPT %d\r"),
  272.            *msg_topt IS("\x01TOPT %d\r"),
  273.            *enter_city IS("Please enter your City and State/Prov.: "),
  274.            *enter_phone IS("Please enter your phone number [(xxx)yyy-zzzz]: "),
  275.            *enter_name IS("Please enter your real name: "),
  276.            *msg_aborted IS(CLS WHITE CLEOL "\n" CLEOL "\n" CLEOL "Message aborted.\n" CLEOL "\n" CLEOL),
  277.            *node_listing IS(" %5d," CYAN " %s, %s\n"),
  278.            *pad_zone IS(YELLOW "ZONE  "),
  279.            *pad_region IS(YELLOW "REGION"),
  280.            *pad_net IS(YELLOW "NET   "),
  281.            *pad_none IS(YELLOW "      "),
  282.            *msgtemp_name IS("%sMSGTMP%02x.$$$"),
  283.            *white_n IS(WHITE "\n"),
  284.            *ordinal_th IS("th"),
  285.            *ordinal_st IS("st"),
  286.            *ordinal_nd IS("nd"),
  287.            *ordinal_rd IS("rd"),
  288.            *file_name IS(LGREEN "\nFile area " LMAGENTA "%2s" GRAY " ... " CYAN "%s\n\n"),
  289.            *message_name IS(LGREEN "%sarea " LMAGENTA "%2s" GRAY " ... " CYAN "%s\n"),
  290.            *area_name IS(LMAGENTA "%2s" GRAY " ... " CYAN "%s\n"),
  291.            *space_over IS(CLEOL "             \r"),
  292.            *bbs_stats IS("%sBBSTAT%02x.BBS"),
  293.            *on IS("ON"),
  294.            *off IS("OFF"),
  295.            *four_blanks IS("────"),
  296.            *moreyn_blank IS("              \r"),
  297.            *moreynns_blank IS("                \r"),
  298.            *Yn IS("Yn"),
  299.            *yN IS("yN"),
  300.            *Yne IS("Yn="),
  301.            *Ynq IS("Yn?"),
  302.            *yNq IS("yN?"),
  303.            *lzh_type IS("%-15.15s %8lu %8lu %-02.2d.%d%% %02d-%02d-%02.2d %02d:%02d:%02d %s %-8.8s %04X\n"),
  304.            *cf_barricade IS("!Can't find barricade file %s"),
  305.            *sp_bs IS(" \x08"),
  306.            *nomls IS("!No mem for lastread scan"),
  307.            *clear_string IS("\x16\x08%c%c\x19 %c"),
  308.            *fill_string IS("\x16\x08%c%c\x19%c%c"),
  309.            *attr_string IS("\x16\x01%c"),
  310.            *pd IS("%d"),
  311. /*         *magnus_tid IS("Maximus tid %02xh"), */
  312. /*         *unknown_uid IS("Unknown UserID"), */
  313.            *dotbbs IS(".BBS"),
  314.            *dotgbs IS(".GBS"),
  315.            *dotlog IS(".Log"),
  316.            *dotctl IS(".Ctl"),
  317.            *noaccess IS("NoAccess"),
  318.            *all IS("All"),
  319.            *active_x_bbs IS("ACTIVE%x.BBS"),
  320.            *avt_home IS("\x16\x08\x01\x01"),
  321.            *bs_sp_bs IS("\x08 \x08"),
  322.            *n_n IS("\n\n"),
  323.            *qmark IS("?"),
  324.            *p2s IS("%2s"),
  325.            *eq IS("="),
  326.            *opusxfer_name IS("%sMAXXFER.%03x"),
  327. /**/
  328.            *comp_date IS(__DATE__),
  329.            *comp_time IS(__TIME__),
  330.            *glob_iread,
  331.            *offsets IS(NULL),       /* Pointer to the .PRM info.  Access with PRM(). */
  332.            *menuname IS(NULL),      /* Pointer to mname[] var in MAX_MENU */
  333.            *original_prompt IS(NULL),
  334.            *orig_path[LEN(MAX_DRIVES)], /* What directory we started out in */
  335.            *orig_path2[LEN(MAX_DRIVES)], /* What directory we started out in, alternate1 */
  336.            *orig_path3[LEN(MAX_DRIVES)], /* What directory we started out in, alternate2 */
  337.            main_menu[MAX_MENUNAME],
  338.            files_bbs[13] IS ("FILES.BBS"),
  339.            sfiles[13] IS ("FILES"),
  340.            last_name[LEN(MAX_MENUNAME)] IS(""),
  341.            last_onexit[LEN(PATHLEN)] IS(""),
  342.            orig_disk,      /* Disk drive number (0=A, 1=B, etc) we started from */
  343.            orig_disk2,      /* Disk drive number (0=A, 1=B, etc) we started from, alternate1 */
  344.            orig_disk3,      /* Disk drive number (0=A, 1=B, etc) we started from, alternate2 */
  345.            original_path[PATHLEN], /* The DRIVE/PATH we started from */
  346.            prmname[LEN(80)] IS("Max"), /* Name of .PRM file */
  347.            searchfor[LEN(BUFLEN)],  /* Text to search FILES.BBS for */
  348.            log_name[LEN(80)],       /* Name of log file */
  349.            menupath[LEN(80)],       /* Path to the current menu files.     *
  350.                                      * Can be mod'ed by barricades.        */
  351.            fix_menupath[LEN(MAX_MENUNAME)], /* Name to adjust menupath back to  */
  352.            firstname[LEN(36)],      /* User's first name.                  */
  353.            next_ldate[LEN(19)],     /* Ldate to insert into usr when caller logs off */
  354.            last_readln[MAXLEN+1],
  355.            linebuf[LEN(BUFLEN+1)];  /* Line input buffer, for stacked cmds */
  356.  
  357. extrn char local,                       /* If we're in local mode, implies keyboard & snoop */
  358.            displaymode,                 /* Local display mode, FOSSIL, BIOS, IBM, etc. */
  359.            snoop,                       /* If we see what's on the screen. */
  360.            keyboard,                    /* If we can type.  Implies snoop. */
  361.            task_num,                    /* What our task number is         */
  362.            caller_online,               /* If there's a caller currently on-line */
  363.            do_timecheck,                /* If we check the user's time     */
  364.            fossil_initd,                /* If the FOSSIl has been started  */
  365.            curattr IS(DEFAULT_ATTR),    /* Current local screen attribute  */
  366.            mdm_attr IS(DEFAULT_ATTR),   /* Current remote's screen attribute */
  367.            lastmenu,                    /* The last ^OR response           */
  368.            realgoto,                    /* If we don't do the HOTFLASH +1 offset */
  369.            protocol_letter,             /* The first letter of the current external protocol */
  370.            written_echomail,            /* If the user wrote an echomail message */
  371.            written_matrix,              /* If the user wrote a matrix message */
  372.            written_local,               /* If the user wrote a local message */
  373.            sent_time_5left,             /* If we've issued a "5minleft" warn */
  374.            sent_time_almostup,          /* If we've issued a "t.almostup" warn */
  375.            barricade_ok,                /* If the barricade pwd has been asked */
  376.            wrap,                        /* If the current line has wrapped */
  377.            first_search,                /* If this was the first area we serached with the locate command (reset nonstop) */
  378.            last_nonstop,                /* The last L)ocate nonstop setting */
  379.            beginline,                   /* If we just xmit'd a \r or \n, and are at beginning of FILES.BBS line. */
  380.            inmsgarea,                   /* If we're in a message area, and need to update lastread pointers if a user drops carrier */
  381.            infilearea,                  /* If we're in a file area, and need to restore the current directory */
  382.            inmagnet,                    /* If we're in the MagnEt editor   */
  383.            multitasker,                 /* Which M'task we're runniing under */
  384.            did_trap,                    /* If we grabbed the ^c/^break vectors */
  385.            restart_system,              /* If we're restarting the current user */
  386.            erl,                         /* Errorlevel exited with          */
  387.            in_file_xfer,                /* If we should force logit() calls to be displayed on-screen */
  388.            in_mcheck,                   /* If we're in the mailchecker */
  389.            create_userbbs,              /* Whether or not to create USER.BBS */
  390.            this_logon_bad,              /* If user failed the current logon */
  391.            inchat,                      /* If we're currently in chat mode */
  392.            locked,                      /* If the user's priv level is currently locked */
  393.            locked2,                     /* Ditto, for the barricades!      */
  394.            chatreq,                     /* If user has requested a chat in this session */
  395.            do_useredit,                 /* Run user-editor at startup      */
  396.            do_desqsnoop,                /* If we run a separate "snoop" window */
  397.            fthru_yuhu,                  /* If a YooHoo has apparently fallen through from the mailer */
  398.            shutup,                      /* If time-limit routines should be shut up */
  399.            nowrite_lastuser,            /* If we're not to write lastuser.bbs on exit */
  400.            ul_no_space,                 /* If we ran out of space during upload */
  401.            dsp_set,                     /* If the 'displaymode' param has been set (other than by .PRM file) */
  402.            mn_dirty,                    /* If menuname var has changed */
  403.            no_zmodem,                   /* Turn off internal Zmodem protocol */
  404.            no_shell,                    /* Turn off local Alt-J (jump to DOS) commands */
  405.            no_piggy,                    /* No ^kP cmd */
  406.            last_maxed,                  /* If last editor invoked was MaxEd */
  407.            topline;                     /* If we've executed TopLine() and are still "up there" */
  408.  
  409. extrn int ultoday,                      /* Kbytes uploaded on this call    */
  410.           port,                         /* Actual com port we're using     */
  411.           nested,                       /* How many nested .BBS files we're in */
  412.           usernum,                      /* Current user number!            */
  413.           class,                        /* Class num. of current user      */
  414.           matches,                      /* #of matches when searching FILES.BBS */
  415.           menu_lines,                   /* #of lines menu options take up  */
  416.           areasfile,                    /* AREAS.DAT file handle           */
  417.           last IS(MENU_other),          /* Last menu-file displayed        */
  418.           lockpriv,                     /* The current user's locked priv level */
  419.           lockpriv2,                    /* Ditto, for the barricades       */
  420.           lmsg,                /* Last-message for Msg_Change()   */
  421.           keepflag IS(FALSE),
  422.           unique_task,                  /* Find a unique task number?      */
  423.           menuhelp,                     /* Virtual help level, inside menu */
  424.           last_lastread,
  425.           areasidx;                     /* AREAS.IDX file handle           */
  426.  
  427.  
  428. extrn unsigned long timestart,          /* When Max execution started */
  429.                     timeon,             /* Timestmp whn usr got on systm   */
  430.                     timeoff,            /* Timestmp whn usr mst be off sys */
  431.                     max_time,           /* -t parameter                    */
  432.                     baud,               /* User's current baud rate        */
  433.                     last_bps,           /* Transfer rate of last file sent */
  434.                     input_timeout;      /* Timer for caller sleep timeout  */
  435.                   
  436. extrn long rst_offset;                  /* Used with -r and .BBS file      */
  437.  
  438. extrn unsigned int current_baud,        /* Current baud, in format         */
  439.                                         /* acceptable by mdm_baud call.    */
  440.                                         /* Use the normal `baud' if you    */
  441.                                         /* need the numeric value.         */
  442.                  
  443.                    steady_baud;         /* steady_baud is the baud mask    */
  444.                                         /* to lock the COM port at, if     */
  445.                                         /* any.                            */
  446.  
  447. extrn char display_line,                /* # of lines since last More [Y,n] */
  448.            display_col,                 /* Col. of current line since last M[Y,n] */
  449.            current_line,                /* Actual line of screen we're on */
  450.            current_col;                 /* Actual column of screen we're on */
  451.  
  452. #endif  /* MSC_KLUDGE1 */
  453. #ifndef MSC_KLUDGE2 /*PLF Sun  05-20-1990  23:40:41 */
  454. #include "max_str.h"
  455. #endif
  456.  
  457. #endif /* __MAXV_H_DEFINED_ */
  458.  
  459.