Выдернул опрос клавиатуры из исходника Titusa.
К ожиданию нажатия и работы .TTYIN естественно нет проблем.
Но! Как мне дальше работать (обрабатывать) код нажатой кнопки???
Сделал тестовую программу, что бы нагляднее описать суть вопроса:
Протокол работы:
Листинг TPQQQ1.PASКод:.TPQQQ1 НАЖМИТЕ ЛЮБУЮ КЛАВИШУ uh ty!!! BYE 0
Выделенная жирным команда не работает!!!Код:.TY TPQQQ1.PAS PROGRAM TPQQQ1; /*$C .MCALL .TTYIN */ VAR RP: INTEGER; PROCEDURE KEYPRESS(KEYCODE: INTEGER); BEGIN /*$C BIS #^O10000,@#^O44 .TTYIN CMPB R0,#27. BNE 1$ .TTYIN 1$: CMPB R0,#13. BNE 2$ .TTYIN 2$: MOV R0, KEYCODE(SP) */ END; BEGIN WRITELN(CHR(14),'navmite l`bu` klawi{u',CHR(15)); KEYPRESS(RP); WRITELN('uh ty!!!'); KEYPRESS(RP); WRITELN('BYE',RP); END.
RP при таком как сейчас присвоении = нулю (как видно выше),
если я по примеру оператора сравнения CMPB использую оператор
MOVB программа вылетает в TRAP ??? Почему 0 ??? В чём моя ошибка ???




Ответить с цитированием
