Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- TASM 2.x / MASM 6.x Assembly Language - <b>int 16h, 10h (16) extended keyboard read many</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 16h,  10h (16)       Extended Keyboard Read                          many

    Returns the next character in the keyboard buffer; if no character is
    available, this service waits until one is available. This service is
    provided to support the enhanced (101/102-key) keyboard.

       On entry:      AH         10h

       Returns:       AL         ASCII character code
                      AH         Scan code

  --------------------------------------------------------------------------

       Notes:         This service is supported only on the AT dated
                      11/15/85 and after, PC XT dated 1/10/86 and after,
                      and XT-286.

                      The scan codes are the numbers representing the
                      location of the key on the keyboard. As new keys
                      have been added and the keyboard layout rearranged,
                      this numbering scheme has not been consistent with
                      its original purpose. See the list of scan codes.

                      If the character is a special character, AL will be
                      0 and the value in AH will be the extended scan code
                      for the key. See the list of scan codes.

                      Use the scan codes to differentiate between keys
                      representing the same ASCII code, such as the plus
                      key across the top of the keyboard and the gray plus
                      key.

                      After the character has been removed from the
                      keyboard buffer, the keyboard buffer start pointer
                      (at 0:041Ah) is increased by 2. If the start pointer
                      is beyond the end of the buffer, the start pointer
                      is reset to the start of the keyboard buffer.

                      If no character is available at the keyboard, an INT
                      15h, Service 90h (Device Busy), will be issued for
                      the keyboard, informing the operating system that
                      there is a keyboard loop taking place and thereby
                      allowing the operating system to perform another
                      task.

                      After every character is typed, an INT 15h, Service
                      91h (Interrupt Complete), is issued. This allows the
                      operating system to switch back to a task that is
                      waiting for a character at the keyboard.

                      See Service 00h for an equivalent service that works
                      with all keyboards, not supporting the new keys on
                      the enhanced (101/102-key) keyboard.

See Also: INT 16h, 00h INT 16h, 05h

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson