считвание нажатой клавиши

Тема в разделе "WASM.BEGINNERS", создана пользователем ksacvet777, 17 ноя 2006.

  1. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    ДВС. Уважаеме знатоки , скажите существует ли прервание для того чтобы считать сканкод нажатой в данной момент клавиши ?

    Я помню есть прервание дос для чтения клавиши , но это прервание ожидает нажатия на клавишу , а есть ли прервание которое не ждёт нажатия , а сразу же возвращает управление даже , если ничего не нажато . ?

    Заранее благодарю !!! :)
     
  2. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    ksacvet777
    Немного сумбурно задан вопрос... :)
    Считать сканкод нажатой в данный момент клавиши - невозможно. Да и логично это - а если их несколько нажато?
    Но, если я правильно понял, вопрос не в этом.

    Возможно имеется ввиду вот это?
    Код (Text):
    1. INT 16H 11H: Query Extended Keyboard Status / Preview Key
    2.  
    3.  Expects: AH    11H
    4.           ──────────────────────────────────────────────────────────────────
    5.  Returns: ZF    ZR = no keys in buffer
    6.                 NZ = key is ready
    7.           AH    (if ZR) scan code
    8.           AL    ASCII character code or extended ASCII keystroke
    9.           ──────────────────────────────────────────────────────────────────
    10.     Info: This is identical to INT 16H 01H, except that it does not perform
    11.           "extended key filtering" to map 101-key 'board keystrokes to
    12.           84-key 'board equivalents.
    13.  
    14. See Also: INT 16H (BIOS keyboard services)
    15.           BIOS Data Area
    16.           ROM-BIOS Functions
     
  3. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    В дос Int 21h, AH = 0Bh выдаст AL=FFh если есть готовый символ, или AL=00h, если нет
    Затем читаешь сканкод
    или в BIOS Int 16h, AH = 01h сбрасывает флаг ZF если есть готовый символ и возвращает в AL сканкод, в AH позиционный код (есно если после int не установлен ZF)

    ЗЫ: долго я собирался, ответ давно висит :)))
     
  4. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    Большое спасибо. буду проверять