User Tag List

Показано с 1 по 10 из 14

Тема: Процедура опроса клавиатуры

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,684
    Спасибо Благодарностей отдано 
    2,724
    Спасибо Благодарностей получено 
    172
    Поблагодарили
    132 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В приведённом выше коде есть баг (!). Было:
    Код:
    .globl _Input_keysAvailable
    _Input_keysAvailable:
      LD   A,#0              ; Check overflow:
      CP   #8                ; IF keysAvailable > 8 THEN keysAvailable := 8 END;
      ADC  #0
      LD   (_Input_keysAvailable+1),A
      RET  C
      JR   _Input_keyOut
    Стало:
    Код:
    .globl _Input_keysAvailable
    _Input_keysAvailable:
      LD   A,#0              ; Check overflow:
      CP   #KeyBufSize       ; IF keysAvailable > 8 THEN keysAvailable := 8 END;
      JR   NC,_Input_keyOut
      INC  A
      LD   (_Input_keysAvailable+1),A
      RET
    Баг связан с тем, что не было учтено влияние команды ADC #0 на флаг переноса, и процедура реагировала без переполнения буфера как на его переполнение.
    Последний раз редактировалось Oleg N. Cher; 25.12.2014 в 15:58.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. процедура загрузки с диска
    от necroTrue в разделе Программирование
    Ответов: 18
    Последнее: 18.08.2011, 17:18
  2. нужна процедура умножения 16b*8b
    от DimkaM в разделе Программирование
    Ответов: 0
    Последнее: 16.04.2010, 10:29
  3. Глюк опроса клавиатуры
    от POIND в разделе Устройства ввода
    Ответов: 15
    Последнее: 20.06.2005, 16:03
  4. Процедура детекта TurboSound.
    от Shiru в разделе Программирование
    Ответов: 21
    Последнее: 27.05.2005, 18:45
  5. Процедура опроса клавиатуры
    от Aprisobal в разделе Программирование
    Ответов: 8
    Последнее: 19.02.2005, 18:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •