Page 1 of 1

PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 19:37
by breeze
При опросе клавиатуры через стандартные порты, столкнулся с некоторой проблемой. :smoke:

Раньше, для того что бы избежать «дребезга клавиш», использовался такой алгоритм:

Code: Select all
LOOP     EI
         HALT
         LD BC,#BFFE
         IN A,(C)
         BIT 0,A
         JR NZ,LOOP ; основной цикл опрос ENTER
; далее если ENTER нажали
LOOP2    EI
         HALT
         LD BC,#BFFE
         IN A,(C)
         BIT 0,A
         JR Z,LOOP2 ; дополнительный цикл опрос ENTER

то есть сначала ожидаем что клавишу нажали, затем ожидаем что клавишу отпустили :applause:

Однако, в PentEvo такой алгоритм не прокатывает, клавиша всё время сразу отпущена, bit 0 сразу сбрасывается и не важно, удерживаю я клавишу или действительно отпустил :wow2:

Посему напрашивается вопрос, это особенность ps/2 клавиатуры, или вопрос при эмуляции клавиатуры ZX ? :yawn:

Re: PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 19:50
by CHRV
breeze wrote:Однако, в PentEvo такой алгоритм не прокатывает, клавиша всё время сразу отпущена, bit 0 сразу сбрасывается и не важно, удерживаю я клавишу или действительно отпустил

Чета ты бредишь.
ПРоверить в васике лекго:
10 PRINT IN 254
20 GOTO 10

Пока клавиша нажата - код нажатой клавиши проходит, как отпущено то не проходит.

Re: PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 20:57
by lvd
ниасилил топикстартера.
Алгоритмум у него странный, сначала пытается лупиться, если нажато (бит=0), если не нажато, вылетает и лупится, пока отжато (бит=1).

Логической связи алкоритма со словами топикстартера не задетектил.

Re: PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 20:57
by lvd
И да, нажав любые 2 кнопге при ресете в евосервис, попадаем в евосервис-клавиатуртестер.

Re: PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 21:25
by Budder
как бы команда BIT выдаёт Z=1, если проверяемый бит=0.
аля поменяй JR Z,LOOP на JR NZ,LOOP и соотв. JR NZ,LOOP2 на JR Z,LOOP2.

P.S. дожиле, T_T

Re: PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 22:46
by breeze
Budder wrote:как бы команда BIT выдаёт Z=1, если проверяемый бит=0.


я немного поторопился, набрал неверно, конечно же это так.

Re: PentEvo опрос клавиатуры

PostPosted: 14 May 2011, 23:05
by breeze
Короче тему можно закрывать, проблема не в опросе. В отдельно взятой программе всё работает.