www.pudn.com > ·ÂÕæÖÕ¶Ëvt100.zip > VTSETUP.C


#include  
#include  
 
#define F1    0x3B00              /* Scancode for function key F1  */ 
#define F2    0x3C00              /* Scancode for function key F2  */ 
#define F3    0x3D00              /* Scancode for function key F3  */ 
#define F4    0x3E00              /* Scancode for function key F4  */ 
#define F5    0x3F00              /* Scancode for function key F5  */ 
#define F6    0x4000              /* Scancode for function key F6  */ 
#define F7    0x4100              /* Scancode for function key F7  */ 
#define F8    0x4200              /* Scancode for function key F8  */ 
#define F9    0x4300              /* Scancode for function key F9  */ 
#define F10   0x4400              /* Scancode for function key F10 */ 
#define ESC   0x011b              /* Scancode for ESCape key */ 
 
/*****************************************************************************/ 
/* function prototypes                                                       */ 
 
void TTSetup( void );             /* Communications setup function */ 
void VidSetup( void );            /* Video setup function */ 
void KeySetup( void );            /* Keyboard setup function */ 
void VTSetup( void );             /* VT emulation setup */ 
void FileSetup( void );           /* File system setup */ 
 
static void ToggleBaud( void );        /* Toggle the baud setting */ 
static void TogglePort( void );        /* Toggle the port setting */ 
static void ToggleParity( void );      /* Toggle the parity setting */ 
static void ToggleDataBits( void );    /* Toggle the databits setting */ 
static void ToggleStopBits( void );    /* Toggle the stopbits setting */ 
static void DisplayBaud( void );       /* Display the baud setting */ 
static void DisplayPort( void );       /* Display the port setting */ 
static void DisplayParity( void );     /* Display the parity setting */ 
static void DisplayDataBits( void );   /* Display the databits setting */ 
static void DisplayStopBits( void );   /* Display the stopbits setting */ 
static void ToggleRetrace( void );     /* Toggle the video retrace mode */ 
static void DisplayRetrace( void );    /* Display the video retrace mode */ 
static void ToggleBackSpace( void );   /* Toggle the backspace interpretation */ 
static void DisplayBackSpace( void );  /* Display backspace interpretation */ 
static void ToggleKeyClick( void );    /* Toggle the key click mode */ 
static void DisplayKeyClick( void );   /* Display the Keyclick mode */ 
static void ToggleKeyPadMode( void );  /* Toggle the key pad mode */ 
static void DisplayKeyPadMode( void ); /* Display the Key Pad mode */ 
static void ToggleForeColor( void );   /* Toggle foreground colors */ 
static void DisplayForeColor( void );  /* Display the foreground colors */ 
static void ToggleBackColor( void );   /* Toggle background colors */ 
static void DisplayBackColor( void );  /* Display the background colors */ 
static void ToggleOriginMode( void );  /* Toggle the origin Mode */ 
static void ToggleInsertMode( void );  /* Toggle the Insert/replace Mode */ 
static void ToggleAutoWrapMode( void );/* Toggle auto wrap mode */ 
static void ToggleNewLine( void );     /* Toggle new line mode */ 
static void ToggleCursorVisible( void );/* Toggle cursor visibility */ 
static void ToggleReverseBackGround( void );/* Toggle reversed background mode */ 
static void ToggleScreenWid( void );   /* Toggle the screen width setting */ 
static void DisplayOriginMode( void ); /* Display the origin Mode */ 
static void DisplayInsertMode( void ); /* Display the Insert/replace Mode */ 
static void DisplayAutoWrapMode( void );/* Display auto wrap mode */ 
static void DisplayNewLine( void );    /* Display new line mode */ 
static void DisplayCursorVisible( void );/* Display cursor visibility */ 
static void DisplayReverseBackGround( void );/* Display reversed background mode */ 
static void DisplayScreenWid( void );  /* Display the screen width setting */ 
static void DisplaySaveSetup( void );  /* Display Setup saved status */ 
static void ToggleLogMode( void );     /* Toggle Log File mode */ 
static void DisplayLogMode( void );    /* Display status of Log File */ 
static void StartSetup(char *);        /* Begin a setup screen */ 
static void EndSetup( void );          /* End a setup screen */ 
 
unsigned int GetKey( void );      /* Function to retrieve a keystroke */ 
 
/*****************************************************************************/ 
/* Global Data                                                               */ 
 
 
/*****************************************************************************/ 
/* External Data                                                             */ 
 
extern unsigned int port;         /* COM port */ 
extern unsigned int speed;        /* BAUD rate */ 
extern char parity[5];            /* Parity setting */ 
extern unsigned int databits;     /* Number of Data bits */ 
extern unsigned int stopbits;     /* Number of Stop bits */ 
 
extern unsigned char retracemode; /* Video snow retrace wait mode flag */ 
extern unsigned char forecolor;   /* Default foreground color */ 
extern unsigned char backcolor;   /* Default background color */ 
 
extern unsigned char backspace;   /* Backspace interpretation flag */ 
extern unsigned char keyclick;    /* Keyclick on/off flag */ 
extern unsigned char applkeypad;  /* Application key pad mode flag */ 
 
extern unsigned originmode;       /* Origin mode, relative or absolute */ 
extern unsigned insertmode;       /* Insert mode, off or on */ 
extern unsigned autowrap;         /* Automatic wrap mode, off or on */ 
extern unsigned newline;          /* Newline mode, off or on,  GLOBAL data!*/ 
extern unsigned cursorvisible;    /* Cursor visibility, on or hidden */ 
extern unsigned reversebackground;/* Reverse background attribute, on or off*/ 
extern unsigned screenwid;        /* Screen column width */ 
extern unsigned char log;         /* Logging characters */ 
 
extern char setupfile[];          /* Filename of setup file */ 
extern char logfile[];            /* Filename of log file */ 
extern unsigned char vidmode;     /* Video mode */ 
 
/*****************************************************************************/ 
/* Local Static Data                                                               */ 
 
static char *vcolors[] = {        /* Array of color names */ 
    "BLACK",        "BLUE",           "GREEN", 
    "CYAN",         "RED",            "MAGENTA", 
    "BROWN",        "LIGHTGRAY",      "DARKGRAY", 
    "LIGHTBLUE",    "LIGHTGREEN",     "LIGHTCYAN", 
    "LIGHTRED",     "LIGHTMAGENTA",   "YELLOW", 
    "WHITE", 
    }; 
 
static unsigned holdbackground;   /* Temporary holder for background setting */ 
static unsigned char saved;       /* Flag indication setup already saved */ 
/*****************************************************************************/ 
/*****************************************************************************/ 
 
/*  T T S E T U P -- Enter Communications Setup Mode */ 
 
void TTSetup() { 
   int thru = 0; 
   int changes = 0; 
 
 
   StartSetup("Communications");  /* Begin this Setup Screen */ 
 
   DisplayPort();                 /* Display initial current port setting */ 
   DisplayBaud();                 /* Display initial current baud rate setting */ 
   DisplayParity();               /* Display initial current parity setting */ 
   DisplayDataBits();             /* Display initial current data bits setting */ 
   DisplayStopBits();             /* Display initial current stop bits setting */ 
 
   while( !thru ) { 
 
      switch (GetKey()) { 
          case F1:                /* Toggle the COM port setting */ 
              TogglePort(); 
              DisplayPort(); 
              changes = 1; 
              break; 
          case F2:                /* Toggle the baud rate setting */ 
              ToggleBaud(); 
              DisplayBaud(); 
              changes = 1; 
              break; 
          case F3:                /* Toggle the parity setting */ 
              ToggleParity(); 
              DisplayParity(); 
              changes = 1; 
              break; 
          case F4:                /* Toggle the data bits setting */ 
              ToggleDataBits(); 
              DisplayDataBits(); 
              changes = 1; 
              break; 
          case F5:                /* Toggle the stop bits setting */ 
              ToggleStopBits(); 
              DisplayStopBits(); 
              changes = 1; 
              break; 
          case F10: 
          case ESC: 
              thru = 1; 
              break; 
          default: 
      } 
   } 
   RestoreScreen();               /* Restore the initial emulation screen */ 
   if (changes) {                 /* If changes have been made */ 
      ttclose();                    /* Close the port */ 
      ttopen();                     /* Reopen the port to update COM values */ 
   } 
} 
 
 
 
 
/*  T O G G L E P O R T -- toggle the COM port setting */ 
 
static void TogglePort() { 
   static int vports[] = {        /* Array of Valid port settings */ 
       1, 2, 
       0 };                       /* Terminated by a 0 */ 
   static int * pptr = vports;    /* Pointer to port value setting in array */ 
 
   ++pptr;                      /* look at next port setting in array */ 
   if (*pptr == 0)              /* if setting is 0 then time for wrap */ 
      pptr = vports; 
   port = *pptr;                /* set the port to this setting */ 
} 
 
 
 
/*  T O G G L E B A U D -- Toggle the baud rate setting */ 
 
static void ToggleBaud() { 
   static int vbauds[] = {        /* Array of valid baud rate settings */ 
       50, 75, 110, 150, 300, 
       600, 1200, 1800, 2000, 
       2400, 4800, 9600, 19200, 
       38400,                     /* Terminated by a 0 */ 
       0 }; 
   static int *bptr = &vbauds[9]; /* Pointer to baud rate setting in array */ 
 
   ++bptr;                        /* look at next baud rate setting in array */ 
   if (*bptr == 0)                /* if setting is 0 then time for wrap */ 
      bptr = vbauds; 
   speed = *bptr;                 /* Set the speed to this setting */ 
} 
 
 
 
/*  T O G G L E P A R I T Y -- Toggle the parity setting */ 
 
static void ToggleParity() { 
   static char *vparitys[] = {    /* Array of valid parity settings */ 
       "NONE", "EVEN", "ODD", 
       NULL };                    /* Terminated by a NULL */ 
   static char **pptr = vparitys; /* Pointer to parity setting in array */ 
 
   ++pptr;                        /* look at next parity setting in array */ 
   if (*pptr == NULL)             /* if setting == NULL then time for wrap */ 
      pptr = vparitys; 
   strcpy(parity,*pptr);          /* set the parity to this setting */ 
} 
 
 
 
/*  T O G G L E D A T A B I T S -- Toggle databits setting */ 
 
static void ToggleDataBits() { 
   static int vdatabits[] = {     /* Array of valid databit settings */ 
       5,6,7,8, 
       0 };                       /* Terminated by a 0 */ 
   static int *dptr=vdatabits;    /* Pointer to databit setting in array */ 
 
   ++dptr;                        /* look at next databit setting in array */ 
   if (*dptr == 0)                /* if setting is 0 then time for wrap */ 
      dptr = vdatabits; 
   databits = *dptr;              /* set the databits to this setting */ 
} 
 
 
 
/*  T O G G L E S T O P B I T S -- Toggle StopBits setting */ 
 
static void ToggleStopBits() { 
   static int vstopbits[] = {     /* Array of valid stopbit settings */ 
       1,2, 
       0 };                       /* Terminated by a 0 */ 
   static int *sptr=&vstopbits[0];/* Pointer to stopbit setting in array */ 
 
   ++sptr;                        /* look at next stopbits setting in array */ 
   if (*sptr == 0)                /* if setting is 0 then time for wrap */ 
       sptr = vstopbits; 
   stopbits = *sptr;              /* set the stopbits to this setting */ 
} 
 
/*  D I S P L A Y P O R T -- Display COM port setting */ 
 
static void DisplayPort() { 
   vtprintf(5,2,0," F1)  COM port  = %5d",port); 
} 
 
 
/*  D I S P L A Y B A U D -- Display baud rate setting */ 
 
static void DisplayBaud() { 
   vtprintf(7,2,0," F2)  Baud rate = %5u",speed); 
} 
 
 
/*  D I S P L A Y P A R I T Y -- Display parity setting */ 
 
static void DisplayParity() { 
   vtprintf(9,2,0," F3)  Parity =     %4s",parity); 
} 
 
 
/*  D I S P L A Y D A T A B I T S -- Display databits setting */ 
 
static void DisplayDataBits() { 
   vtprintf(11,2,0," F4)  Data bits = %4d",databits); 
} 
 
 
/*  D I S P L A Y S T O P B I T S -- Display stopbits setting */ 
 
static void DisplayStopBits() { 
   vtprintf(13,2,0," F5)  Stop bits = %4d",stopbits); 
} 
 
/*****************************************************************************/ 
 
 
/*  V I D S E T U P -- Enter Video Setup Mode */ 
 
void VidSetup() { 
   int thru = 0; 
   int colorchange = 0; 
 
   StartSetup("Video");           /* Begin this Setup Screen */ 
 
 
   DisplayRetrace();              /* Display initial retrace mode setting */ 
   DisplayForeColor();            /* Display initial foreground color */ 
   DisplayBackColor();            /* Display initial background color */ 
 
   while( !thru ) { 
 
      switch (GetKey()) { 
          case F1:                /* Toggle the Retrace mode setting */ 
              ToggleRetrace(); 
              DisplayRetrace(); 
              break; 
          case F2:                /* Toggle the Foreground color */ 
              ToggleForeColor(); 
              DisplayForeColor(); 
              colorchange = 1; 
              break; 
          case F3:                /* Toggle the Background color */ 
              ToggleBackColor(); 
              DisplayBackColor(); 
              colorchange = 1; 
              break; 
          case F10: 
          case ESC: 
              thru = 1; 
              break; 
          default: 
      } 
   } 
 
   RestoreScreen();               /* Restore the initial emulation screen */ 
   if (colorchange) 
      SetColor(); 
} 
 
 
/*  T O G G L E R E T R A C E -- Toggle Video Retrace mode setting */ 
 
static void ToggleRetrace() { 
 
   if (vidmode != 7)              /* Don't allow toggling on a monochrome */ 
      retracemode ^= 1; 
   else { 
      retracemode = 0; 
      sound(324); 
      delay(400); 
      nosound(); 
   } 
} 
 
/*  T O G G L E F O R E C O L O R -- Toggle the foreground color */ 
 
static void ToggleForeColor() { 
 
   if (++forecolor >= 16)         /* Index to next color Setting */ 
      forecolor = 0;              /*  watch for wrap when past WHITE */ 
} 
 
/*  T O G G L E B A C K C O L O R -- Toggle the background color */ 
 
static void ToggleBackColor() { 
 
   if (++backcolor >= 8)          /* Index to next color Setting */ 
      backcolor = 0;              /*  watch for wrap when past LIGHTGREY */ 
} 
 
 
/*  D I S P L A Y R E T R A C E -- Display video retrace mode setting */ 
 
static void DisplayRetrace() { 
   vtprintf(5,2,0," F1)  Video Snow Retrace Wait = %s", 
      (retracemode == 0 ? "OFF" : "ON ")); 
} 
 
 
/*  D I S P L A Y F O R E C O L O R -- Display foreground color */ 
 
static void DisplayForeColor() { 
   vtprintf(7,2,0," F2)  Foreground Color = %12s",vcolors[forecolor]); 
} 
 
 
/*  D I S P L A Y B A C K C O L O R -- Display background color */ 
 
static void DisplayBackColor() { 
   vtprintf(9,2,0," F3)  Background Color = %12s",vcolors[backcolor]); 
} 
 
 
 
 
/*****************************************************************************/ 
 
 
/*  K E Y S E T U P -- Enter Keyboard Setup Mode */ 
 
void KeySetup() { 
   int thru = 0; 
 
   StartSetup("KeyBoard");        /* Begin this Setup Screen */ 
 
   DisplayBackSpace();            /* Display initial retrace mode setting */ 
   DisplayKeyClick();             /* Display initial Key Click mode setting */ 
   DisplayKeyPadMode();           /* Display initial Key Pad mode setting */ 
 
   while( !thru ) { 
 
      switch (GetKey()) { 
          case F1:                /* Toggle the Backspace key interpretation*/ 
              ToggleBackSpace(); 
              DisplayBackSpace(); 
              break; 
          case F2:                /* Toggle the KeyClick Setting */ 
              ToggleKeyClick(); 
              DisplayKeyClick(); 
              break; 
          case F3:                /* Toggle the KeyPadMode Setting */ 
              ToggleKeyPadMode(); 
              DisplayKeyPadMode(); 
              break; 
          case F10: 
          case ESC: 
              thru = 1; 
              break; 
          default: 
      } 
   } 
   RestoreScreen();               /* Restore the initial emulation screen */ 
 
} 
 
 
/*  T O G G L E B A C K S P A C E -- Toggle Backspace interpretation */ 
 
static void ToggleBackSpace() { 
 
   backspace ^= 1; 
} 
 
/*  T O G G L E K E Y C L I C K -- Toggle Keyclick mode */ 
 
static void ToggleKeyClick() { 
 
   keyclick ^= 1; 
} 
 
/*  T O G G L E K E Y P A D M O D E -- Toggle KeyPad mode */ 
 
static void ToggleKeyPadMode() { 
 
   applkeypad ^= 1; 
} 
 
 
/*  D I S P L A Y B A C K S P A C E -- Display backspace interpretation */ 
 
static void DisplayBackSpace() { 
   vtprintf(5,2,0," F1)  BackSpace Interpretation = %s", 
      (backspace == 0 ? "DELETE   " : "BACKSPACE")); 
} 
 
 
/*  D I S P L A Y K E Y C L I C K -- Display keyclick mode */ 
 
static void DisplayKeyClick() { 
   vtprintf(7,2,0," F2)  KeyClick is %s", 
      (keyclick == 0 ? "OFF" : "ON ")); 
} 
 
/*  D I S P L A Y K E Y P A D M O D E -- Display keypad mode */ 
 
static void DisplayKeyPadMode() { 
   vtprintf(9,2,0," F3)  Key Pad is set to %s", 
      (applkeypad == 0 ? "NUMERIC    " : "APPLICATION")); 
} 
 
 
/*****************************************************************************/ 
 
 
/*  V T S E T U P -- Enter Emulation Setup Mode */ 
 
void VTsetup() { 
   int thru = 0; 
   int cursorchange = 0; 
   int backgroundchange = 0; 
   int screenwidchange = 0; 
 
   holdbackground = reversebackground; /* Get value of background setting */ 
 
   StartSetup("Emulation");       /* Begin this Setup Screen */ 
 
   DisplayOriginMode();           /* Display initial origin mode setting */ 
   DisplayInsertMode();           /* Display initial insert mode setting */ 
   DisplayAutoWrapMode();         /* Display initial autowrap mode setting */ 
   DisplayNewLine();              /* Display initial newline mode setting */ 
   DisplayCursorVisible();        /* Display initial cursorvisible setting */ 
   DisplayReverseBackGround();    /* Display initial setting for backgroun */ 
   DisplayScreenWid();            /* Display initial logical screen width */ 
 
   while( !thru ) { 
 
      switch (GetKey()) { 
          case F1:                /* Toggle origin mode setting */ 
              ToggleOriginMode(); 
              DisplayOriginMode(); 
              break; 
          case F2:                /* Toggle insert mode setting */ 
              ToggleInsertMode(); 
              DisplayInsertMode(); 
              break; 
          case F3:                /* Toggle autowrap mode setting */ 
              ToggleAutoWrapMode(); 
              DisplayAutoWrapMode(); 
              break; 
          case F4:                /* Toggle newline mode setting */ 
              ToggleNewLine(); 
              DisplayNewLine(); 
              break; 
          case F5:                /* Toggle cursor visibility */ 
              ToggleCursorVisible(); 
              DisplayCursorVisible(); 
              cursorchange = 1; 
              break; 
          case F6:                /* Toggle background appearance */ 
              ToggleReverseBackGround(); 
              DisplayReverseBackGround(); 
              backgroundchange = 1; 
              break; 
          case F7:                /* Toggle screen width */ 
              ToggleScreenWid(); 
              DisplayScreenWid(); 
              screenwidchange = 1; 
              break; 
 
          case F10: 
          case ESC: 
              thru = 1; 
              break; 
          default: 
      } 
   } 
 
   RestoreScreen();               /* Restore the initial emulation screen */ 
   if (cursorchange)              /* Change the cursor type if needed */ 
      SetCursorVisibility(cursorvisible); 
   if (backgroundchange)          /* Change the background if needed */ 
      SetBackGround(holdbackground); 
   if (screenwidchange)           /* Change the screenwidth if needed */ 
      SetScreenWidth(screenwid); 
} 
 
/*  T O G G L E O R I G I N M O D E -- Toggle the origin mode */ 
 
static void ToggleOriginMode() { 
 
   originmode ^= 1; 
} 
 
/*  T O G G L E I N S E R T M O D E -- Toggle insert/replace mode */ 
 
static void ToggleInsertMode() { 
 
   insertmode ^= 1; 
} 
 
 
/*  T O G G L E A U T O W R A P -- Toggle the autowrap mode */ 
 
static void ToggleAutoWrapMode() { 
 
   autowrap ^= 1; 
} 
 
 
/*  T O G G L E N E W L I N E -- Toggle the newline mode */ 
 
static void ToggleNewLine() { 
 
   newline ^= 1; 
} 
 
 
/*  T O G G L E C U R S O R V I S I B L E -- Toggle the cursor visibility */ 
 
static void ToggleCursorVisible() { 
 
   cursorvisible ^= 1; 
} 
 
 
/*  T O G G L E R E V E R S E B A C K G R O U N D -- Toggle background */ 
 
static void ToggleReverseBackGround() { 
 
   holdbackground ^= 1; 
} 
 
/*  T O G G L E S C R E E N W I D -- Toggle the screen width */ 
 
static void ToggleScreenWid() { 
 
   if (screenwid == 80) 
       screenwid = 132; 
   else 
       screenwid = 80; 
} 
 
 
/*  D I S P L A Y O R I G I N M O D E -- Display the origin mode */ 
 
static void DisplayOriginMode() { 
   vtprintf(7,2,0," F1)  Origin Mode is %s", 
      (originmode == 0 ? "ABSOLUTE" : "RELATIVE")); 
 
} 
 
/*  D I S P L A Y I N S E R T M O D E -- Display insert/replace mode */ 
 
static void DisplayInsertMode() { 
   vtprintf(9,2,0," F2)  Insert/Replace mode is set to %s", 
      (insertmode == 0 ? "REPLACE" : "INSERT  ")); 
 
} 
 
 
/*  D I S P L A Y A U T O W R A P -- Display the autowrap mode */ 
 
static void DisplayAutoWrapMode() { 
   vtprintf(11,2,0," F3)  Auto Wrap mode is %s", 
      (autowrap == 0 ? "OFF" : "ON ")); 
 
} 
 
 
/*  D I S P L A Y N E W L I N E -- Display the newline mode */ 
 
static void DisplayNewLine() { 
   vtprintf(13,2,0," F4)  New Line mode is %s", 
      (newline == 0 ? "OFF" : "ON ")); 
 
} 
 
 
/*  D I S P L A Y C U R S O R V I S I B L E -- Display the cursor visibility */ 
 
static void DisplayCursorVisible() { 
   vtprintf(15,2,0," F5)  Cursor is %s", 
      (cursorvisible == 0 ? "HIDDEN " : "VISIBLE")); 
 
} 
 
 
/*  D I S P L A Y R E V E R S E B A C K G R O U N D -- Display background */ 
 
static void DisplayReverseBackGround() { 
   vtprintf(17,2,0," F6)  Background is %s", 
      (holdbackground == 0 ? "NORMAL  " : "REVERSED")); 
 
} 
 
/*  D I S P L A Y S C R E E N W I D -- Display the screen width */ 
 
static void DisplayScreenWid() { 
   vtprintf(19,2,0," F7)  Logical Screen width is %3d columns",screenwid); 
} 
 
/*****************************************************************************/ 
 
 
/*  F I L E S E T U P -- Enter File Setup Mode */ 
 
void FileSetup() { 
   int thru = 0; 
 
   StartSetup("File");           /* Begin this Setup Screen */ 
   saved = 0;                    /* Start with information not saved */ 
 
   DisplaySaveSetup();           /* Display initially unsaved setup */ 
   DisplayLogMode();             /* Display status of Log File */ 
 
   while( !thru ) { 
 
      switch (GetKey()) { 
          case F1:                /* Save the setup information to disk */ 
              SaveSetup(); 
              saved = 1; 
              DisplaySaveSetup(); 
              break; 
          case F2:                /* Set/reset logging to disk */ 
              ToggleLogMode(); 
              DisplayLogMode(); 
              if (log) 
                 OpenLogFile(); 
              else 
                 CloseLogFile(); 
              break; 
          case F10: 
          case ESC: 
              thru = 1; 
              break; 
          default: 
      } 
   } 
 
   RestoreScreen();               /* Restore the initial emulation screen */ 
} 
 
 
/*  T O G G L E L O G M O D E -- Toggle the log file status */ 
 
static void ToggleLogMode() { 
   log ^= 1; 
} 
 
 
/*  D I S P L A Y S A V E S E T U P -- Display video retrace mode setting */ 
 
static void DisplaySaveSetup() { 
   vtprintf(5,2,0," F1)  Save Setup to '%s' %s",setupfile, 
      (saved == 0 ? " " : " *DONE*")); 
} 
 
/*  D I S P L A Y L O G M O D E -- Display log file status */ 
 
static void DisplayLogMode() { 
 
   if (log) 
       vtprintf(7,2,0," F2)  Logging incoming characters to '%s'",logfile); 
   else 
       vtprintf(7,2,0," F2)  Logging of incoming characters is OFF            "); 
} 
 
 
/*****************************************************************************/ 
 
 
/* S T A R T S E T U P -- Begin a setup mode screen */ 
 
static void StartSetup(char * title) { 
 
   SaveScreen(); 
   ClearScreen(); 
   vtprintf(0,0,1,"%80s"," "); 
   vtprintf(0,0,1,"%s %s",title, 
       "Setup Mode,   Use the function keys to toggle settings"); 
   vtprintf(24,2,0,"%s %s %s","ESC) or F10)   Exit",title,"Setup"); 
} 
 
 
/* E N D S E T U P -- End the setup mode screen */ 
 
static void EndSetup() { 
 
   RestoreScreen();               /* Restore the pre-setup screen */ 
}