INT 16H 01H: Query Keyboard Status / Preview Key

                                                                   [XT] [AT]

 Expects: AH    01H

          ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

 Returns: ZF    ZR = no keys in buffer

                NZ = key is ready

          AH    (if ZR) scan code

          AL    (if ZR) ASCII character code or extended ASCII keystroke

          ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

    Info: Checks to see if a key is available in the keyboard buffer, and

          if so, returns its keycode in AX.  It DOES NOT remove the

          keystroke from the buffer.



          This can be used to avoid dropping into a BIOS loop while waiting

          for a keystroke.  For instance:



            waitForKey: mov   ah,01H

                        int   16H

                        jnz   gotKey       ;jmp if key is ready

                        call  doSomething  ;do processing while waiting

                        jmp   waitForKey   ;loop back and check for a key



            gotKey:     mov ah, 00H        ;key is ready, get it

                        int 16H            ;now process the key

                         .

                         :



   Notes: ž Extended key filtering:  For compatibility with older 83-key

            'boards, this converts duplicated keys into their older

            equivalent keys.  Use INT 16H 11H to get unfiltered key codes.



See Also: INT 16H (BIOS keyboard services)

          BIOS Data Area

          ROM-BIOS Functions

                                    -*-