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

ZX evolution software and hardware

Postby breeze » 14 May 2011, 19:37

При опросе клавиатуры через стандартные порты, столкнулся с некоторой проблемой. :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:
Last edited by breeze on 14 May 2011, 22:44, edited 1 time in total.
User avatar
breeze
 
Posts: 761
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users

Postby CHRV » 14 May 2011, 19:50

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

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

Пока клавиша нажата - код нажатой клавиши проходит, как отпущено то не проходит.
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 923
Joined: 15 Apr 2007, 22:52
Group: Registered users

Postby lvd » 14 May 2011, 20:57

ниасилил топикстартера.
Алгоритмум у него странный, сначала пытается лупиться, если нажато (бит=0), если не нажато, вылетает и лупится, пока отжато (бит=1).

Логической связи алкоритма со словами топикстартера не задетектил.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1637
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby lvd » 14 May 2011, 20:57

И да, нажав любые 2 кнопге при ресете в евосервис, попадаем в евосервис-клавиатуртестер.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1637
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby Budder » 14 May 2011, 21:25

как бы команда BIT выдаёт Z=1, если проверяемый бит=0.
аля поменяй JR Z,LOOP на JR NZ,LOOP и соотв. JR NZ,LOOP2 на JR Z,LOOP2.

P.S. дожиле, T_T
User avatar
Budder
 
Posts: 57
Joined: 20 Jul 2007, 15:05
Group: Registered users

Postby breeze » 14 May 2011, 22:46

Budder wrote:как бы команда BIT выдаёт Z=1, если проверяемый бит=0.


я немного поторопился, набрал неверно, конечно же это так.
User avatar
breeze
 
Posts: 761
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users

Postby breeze » 14 May 2011, 23:05

Короче тему можно закрывать, проблема не в опросе. В отдельно взятой программе всё работает.
User avatar
breeze
 
Posts: 761
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users


Return to Пентева - софт и железо

Who is online

Users browsing this forum: No registered users and 6 guests

cron