home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / BOUT / SNIP9-91.ZIP / KB_DATA.C < prev    next >
C/C++ Source or Header  |  1990-09-03  |  2KB  |  53 lines

  1. /* by: Dan Kozak */
  2.  
  3. #include <stdio.h>
  4.  
  5. typedef struct                     /* Keyboard status structure */
  6.  {
  7.   unsigned int
  8.   right_shift_down  : 1,           /* Right Shift key depressed */
  9.   left_shift_down   : 1,            /* Left Shift key depressed */
  10.   ctrl_shift_down   : 1,                  /* Ctrl key depressed */
  11.   alt_shift_down    : 1,                   /* Alt key depressed */
  12.   scroll_on         : 1,                   /* Scroll Lock is on */
  13.   num_on            : 1,                      /* Num Lock is on */
  14.   caps_on           : 1,                     /* Caps Lock is on */
  15.   ins_on            : 1,              /* Insert state is active */
  16.   filler            : 3,           /* Filler for word alignment */
  17.   ctrl_numloc       : 1,                   /* Suspend key is on */
  18.   scroll_down       : 1,           /* Scroll Lock key depressed */
  19.   num_down          : 1,              /* Num Lock key depressed */
  20.   caps_down         : 1,             /* Caps Lock key depressed */
  21.   ins_down          : 1;                /* Insert key depressed */
  22.  } biosshiftstate;
  23.  
  24. /* the far modifier is an MS-DOS specific thing and is
  25.    implemented differently by different compilers
  26.    how you assign a constant to a far pointer is also compiler
  27.    dependent, this is how TC does it. BTW, don't have Ray Duncan or
  28.    Peter Norton handy, I think this is the correct address for the
  29.    status bytes, it seems to work anyway
  30. */
  31. biosshiftstate far *kbd_status = (biosshiftstate far *) 0x00000417L;
  32.  
  33. main()
  34.  {
  35.   while(1)
  36.    {
  37.     printf("right_shift_down = %d\n",kbd_status->right_shift_down);
  38.     printf("left_shift_down = %d\n",kbd_status->left_shift_down);
  39.     printf("ctrl_shift_down = %d\n",kbd_status->ctrl_shift_down);
  40.     printf("alt_shift_down = %d\n",kbd_status->alt_shift_down);
  41.     printf("scroll_on = %d\n",kbd_status->scroll_on);
  42.     printf("num_on = %d\n",kbd_status->num_on);
  43.     printf("caps_on = %d\n",kbd_status->caps_on);
  44.     printf("ins_on = %d\n",kbd_status->ins_on);
  45.     printf("filler = %d\n",kbd_status->filler);
  46.     printf("ctrl_numloc = %d\n",kbd_status->ctrl_numloc);
  47.     printf("scroll_down = %d\n",kbd_status->scroll_down);
  48.     printf("num_down = %d\n",kbd_status->num_down);
  49.     printf("caps_down = %d\n",kbd_status->caps_down);
  50.     printf("ins_down = %d\n",kbd_status->ins_down);
  51.    }
  52. }
  53.