Touch интерфейс реализован в виде гестур (для простоты использования). Используемый порт - #FEDF
OUT #FEDF, %C000DLPT - управление состоянием гестур
C = 1 - сброс состояния гестур и установка конфигурации:
T = 1 - включение Tap гестуры
P = 1 - включение Pan гестуры
L = 1 - включение Long Press гестуры
D = 1 - включение Double Tap гестуры
C = 0 и любой другой бит не 0 - сброс состояния гестур без смены конфигурации
OUT #FEDF, 0 - синхронизация входного блока данных (см далее). Гарантирует что следующий прочитанный байт - статус
IN #FEDF - чтение блока данных состояния гестур. Блок состоит из 1 или 3-х байтов
первый байт - состояние, формат:
%000SSTTT
TTT - тип распознанной гестуры:
0=none, 1 - tap, 2 - pan, 3 - long press, 4 - double tap
SS - состояние гестуры:
00 - stop
01 - update
10 - start
для гестур Tap & Double Tap состояние всегда 00
для гестуры Long Press отсутствует состояние update
если прочитанный байт состояния = 0, то нет активных гестур и блок состоит только из одного байта, те следующий прочитанный байт - опять состояние
если байт состояния <>0, то:
второй байт - координата пальца X в пикселях
третий байт - координата пальца Y в пикселях
x=0, y=0 - верхний левый угол
Для эмуляции мыши c 1 кнопкой должно выглядеть примерно так:
Инициализация:
Код:
LD BC,#FEDF
LD A, %10000011 ;enable Pan & Tap (click)
OUT (C),A
На прерывании:
Код:
LD BC,#FEDF
XOR A
OUT (C),A ;SYNC to be sure
IN A,(C) ;read status
LD E,A ;save
AND #07
RET Z ;no gesture
; continue with E ...
---------- Post added at 23:40 ---------- Previous post was at 23:38 ----------
Сообщение от
diver
Не пофикшено.
Надо в Эппл настучать.... (шучу )
Тут дело еще в том что нельзя открыто объявить что есть такая фича и остаться незамеченным. А если не анонсировать, то будут знать единицы и тольку от нее не будет