home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / nfsrc21.zip / CAPLOCK.C < prev    next >
Text File  |  1991-08-16  |  2KB  |  75 lines

  1. /*
  2.  * File......: CAPLOCK.C
  3.  * Author....: Ted Means
  4.  * Date......: $Date:   15 Aug 1991 23:08:30  $
  5.  * Revision..: $Revision:   1.3  $
  6.  * Log file..: $Logfile:   E:/nanfor/src/caplock.c_v  $
  7.  * 
  8.  * This is an original work by Ted Means and is placed in the
  9.  * public domain.
  10.  *
  11.  * Modification history:
  12.  * ---------------------
  13.  *
  14.  * $Log:   E:/nanfor/src/caplock.c_v  $
  15.  * 
  16.  *    Rev 1.3   15 Aug 1991 23:08:30   GLENN
  17.  * Forest Belt proofread/edited/cleaned up doc
  18.  * 
  19.  *    Rev 1.2   14 Jun 1991 19:53:38   GLENN
  20.  * Minor edit to file header
  21.  * 
  22.  *    Rev 1.1   27 May 1991 14:41:56   GLENN
  23.  * Added a parameter to turn CapLock on or off.
  24.  * 
  25.  * 
  26.  *
  27.  */
  28.  
  29.  
  30. /*  $DOC$
  31.  *  $FUNCNAME$
  32.  *     FT_CAPLOCK()
  33.  *  $CATEGORY$
  34.  *     Keyboard/Mouse
  35.  *  $ONELINER$
  36.  *     Determine and optionally change the status of CapLock key
  37.  *  $SYNTAX$
  38.  *     FT_CAPLOCK([ <lNewSetting> ]) -> lCurrentSetting
  39.  *  $ARGUMENTS$
  40.  *     <lNewSetting> is optional and if supplied is the new setting
  41.  *     for the CapLock key.  Specify .T. to turn CapLock on, or .F. to
  42.  *     turn it off.
  43.  *  $RETURNS$
  44.  *     .T. if CapLock is set, .F. if it isn't set.  The value returned
  45.  *      represents the setting in effect prior to any changes that might
  46.  *      by made by <lNewSetting>.
  47.  *  $DESCRIPTION$
  48.  *     This function is useful if you need to know or set the status of the
  49.  *     CapLock key for some reason.
  50.  *  $EXAMPLES$
  51.  *     IF FT_CAPLOCK()
  52.  *        Qout( "CapLock is active" )
  53.  *     ENDIF
  54.  *  $SEEALSO$
  55.  *     FT_ALT() FT_CTRL() FT_NUMLOCK() FT_PRTSCR() FT_SHIFT()
  56.  *  $END$
  57.  */
  58.  
  59. #include <extend.h>
  60.  
  61. #define status_byte (*(char *)(0x00000417))
  62.  
  63. CLIPPER FT_CAPLOCK(void)
  64. {
  65.    _retl( (int) (status_byte & 0x40) );
  66.  
  67.    if ( PCOUNT )
  68.       if ( _parl(1) )
  69.          status_byte = (status_byte | 0x40);
  70.       else
  71.          status_byte = (status_byte & 0xBF);
  72.  
  73.    return;
  74. }
  75.