home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / alde_c / misc / func / advc / input.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-12-29  |  2.0 KB  |  107 lines

  1. #include <dos.h>
  2. #include <ctype.h>
  3.  
  4. char getkey(str)
  5.    char *str;
  6. {
  7.    char c, *s;
  8.    int done = 0;
  9.  
  10.    while (!done) {
  11.       if (islower(c = getch()))
  12.          c = toupper(c);
  13.       if (*str) {
  14.          s = str;
  15.          while (*s && !done)
  16.             done = (c == *s++);
  17.          }
  18.       else done = 1;
  19.       }
  20.    return(c);
  21. }
  22.  
  23.  
  24.  
  25. int mousebuttons()                    /* see if mouse buttons are pressed */
  26. {
  27.    union REGS inregs;
  28.    union REGS outregs;
  29.    inregs.x.ax = 6;
  30.    int86(0x33,&inregs,&outregs);
  31.    return(outregs.x.ax & 3);
  32. }
  33.  
  34.  
  35.  
  36. int mousecheck()                      /* see if mouse exists, & # of buttons */
  37. {
  38.    union REGS inregs;
  39.    union REGS outregs;
  40.    inregs.x.ax = 0;
  41.    int86(0x33,&inregs,&outregs);
  42.    return(outregs.x.ax ? outregs.x.bx : 0);
  43. }
  44.  
  45.  
  46.  
  47. int mouseclick()                      /* see if mouse buttons were clicked */
  48. {
  49.    int click = 0;
  50.    union REGS inregs;
  51.    union REGS outregs;
  52.    inregs.x.ax = 5;
  53.    inregs.x.bx = 1;
  54.    int86(0x33,&inregs,&outregs);
  55.    click = outregs.x.bx << 1;
  56.    inregs.x.bx--;
  57.    int86(0x33,&inregs,&outregs);
  58.    return(click | outregs.x.bx);
  59. }
  60.  
  61.  
  62.  
  63. int mousecol()                        /* get column where mouse cursor is */
  64. {
  65.    union REGS inregs;
  66.    union REGS outregs;
  67.    inregs.x.ax = 3;
  68.    int86(0x33,&inregs,&outregs);
  69.    return(outregs.x.cx);
  70. }
  71.  
  72.  
  73.  
  74. void mousecursor(toggle)              /* turn mouse cursor on or off */
  75.    int toggle;
  76. {
  77.    union REGS inregs;
  78.    union REGS outregs;
  79.    if (toggle) inregs.x.ax = 1;
  80.    else inregs.x.ax = 2;
  81.    int86(0x33,&inregs,&outregs);
  82. }
  83.  
  84.  
  85.  
  86. void mouseloc(column,row)             /* set location of mouse cursor */
  87.    int column, row;
  88. {
  89.    union REGS inregs;
  90.    union REGS outregs;
  91.    inregs.x.ax = 4;
  92.    inregs.x.cx = column;
  93.    inregs.x.dx = row;
  94.    int86(0x33,&inregs,&outregs);
  95. }
  96.  
  97.  
  98.  
  99. int mouserow()                        /* get row where mouse cursor is */
  100. {
  101.    union REGS inregs;
  102.    union REGS outregs;
  103.    inregs.x.ax = 3;
  104.    int86(0x33,&inregs,&outregs);
  105.    return(outregs.x.dx);
  106. }
  107.