Microsoft KB Archive/45171: Difference between revisions
(importing KB archive) |
m (Text replacement - "&" to "&") |
||
Line 51: | Line 51: | ||
DIM inregs AS RegType, outregs AS RegType | DIM inregs AS RegType, outregs AS RegType | ||
inregs.ax = & | inregs.ax = &HB00 ' Move a hex value of B into the AH register | ||
outregs.ax = 0 | outregs.ax = 0 | ||
PRINT "Press any key: " | PRINT "Press any key: " | ||
DO | DO | ||
CALL INTERRUPT(& | CALL INTERRUPT(&H21, inregs, outregs) | ||
LOOP UNTIL (outregs.ax AND & | LOOP UNTIL (outregs.ax AND &HFF) = &HFF | ||
INPUT X$ ' The first character typed appears in the INPUT line. | INPUT X$ ' The first character typed appears in the INPUT line. | ||
' Or you can PRINT INKEY$ instead of using INPUT X$ to see the | ' Or you can PRINT INKEY$ instead of using INPUT X$ to see the |
Latest revision as of 14:14, 21 July 2020
Article ID: 45171
Article Last Modified on 11/21/2006
This article was previously published under Q45171
SUMMARY
The program shown below demonstrates how to check for a keypress without reading in the character, thus leaving the character in the keyboard buffer.
This information applies to Microsoft QuickBasic Versions 4.00, 4.00b, and 4.50 and to Microsoft Basic Compiler Versions 6.00, and 6.00b for MS-DOS, and to Microsoft Basic PDS Version 7.00 for MS-DOS.
MORE INFORMATION
The following program, INTKEY.BAS, uses an MS-DOS interrupt to check if a key has been pressed. This can be used to check for a keypress before doing an INPUT, LINE INPUT, or INKEY$ statement. This approach is an alternative to invoking the INKEY$ function, which takes one character at a time out of the keyboard buffer.
This example uses MS-DOS interrupt 33 (21 hex) with function call 11 (0B hex), "Check Input Status." For more information about MS-DOS interrupts, please refer to "Advanced MS-DOS Programming" (Second Edition) by Ray Duncan (published by Microsoft Press, 1988).
Example
' $INCLUDE: 'qb.bi' ' For BC.EXE and QBX.EXE in Basic 7.00 the include file is 'QBX.BI' DIM inregs AS RegType, outregs AS RegType inregs.ax = &HB00 ' Move a hex value of B into the AH register outregs.ax = 0 PRINT "Press any key: " DO CALL INTERRUPT(&H21, inregs, outregs) LOOP UNTIL (outregs.ax AND &HFF) = &HFF INPUT X$ ' The first character typed appears in the INPUT line. ' Or you can PRINT INKEY$ instead of using INPUT X$ to see the ' character waiting in the keyboard buffer.
Additional query words: QuickBas BasicCom
Keywords: KB45171