home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / open / qbinters.lzh / GETKEY.BAS < prev    next >
BASIC Source File  |  1989-04-23  |  1KB  |  40 lines

  1. 'Sun  Apr 23, 1989   2:20:04 pm 
  2. '*****************************************************************************
  3. 'This routine replaces the INKEY$ function. It waits for input and returns
  4. 'whatever key is hit. The second function returns the scan code for a key.
  5. '*****************************************************************************
  6. TYPE RegType
  7.      ax    AS INTEGER
  8.      bx    AS INTEGER
  9.      cx    AS INTEGER
  10.      dx    AS INTEGER
  11.      bp    AS INTEGER
  12.      si    AS INTEGER
  13.      di    AS INTEGER
  14.      flags AS INTEGER
  15. END TYPE
  16. DIM SHARED inregs AS RegType, outregs AS RegType
  17. DECLARE FUNCTION getkey$ ()
  18. DECLARE FUNCTION getscan ()
  19.  
  20.      DO                                            'hit return key twice
  21.           DO
  22.           LOOP UNTIL getscan = &H1C
  23.      LOOP UNTIL getkey$ = CHR$(13)
  24.  
  25. FUNCTION getkey$
  26.      CALL interrupt(&H16, inregs, outregs)
  27.      a = outregs.ax
  28.      scan = FIX(a / 256)
  29.      ascii = a - (scan * 256)
  30.      getkey = CHR$(ascii)
  31. END FUNCTION
  32.  
  33. FUNCTION getscan
  34.      CALL interrupt(&H16, inregs, outregs)
  35.      a = outregs.ax
  36.      scan = FIX(a / 256)
  37.      getscan = scan
  38. END FUNCTION
  39.  
  40.