![]() |
Как быстро добраться до мыши?
Вопрос-то пустяковый, но в реале никогда с устройством не работал :) - на Спектре, то есть. А в литературе с ходу как-то не встречается освещение вопроса, даже даташит по ее портам не нахожу. Где можно почитать про опрос мыши?
Да, и, насколько понимаю, порт постоянно опрашивается и постоянно перерисовывается курсор (точность нужна попиксельная). Где можно поискать процедуры обновления курсора? |
|
В 20 Spectrofon'e (раздел конструктор) приведена схема и пример драйвера для кемпстон мыши..
---- Хотя, breeze, дал ссылку на более полную информацию ;) Quote:
|
А ещё есть sinclair mouse. И даже Art-studio под неё. Но это я так, о птичках... :v2_rolley
|
Они несовместимы?
|
Quote:
|
Принцип работы и "железоспецификация" у них, безусловно - разные!
---- кемпстон мышь - на просторах бывшего СССР наиболее популярный интерфейс, ставший стандартом (также, как тр-дос). |
Quote:
|
На VT выкладывалась версия арт струдио для работы с мышой подрубаемой к порту кемпстон джойстика (с задествованными неиспользуемыми разрядами). Была, кажется и версия с AY mouse..
---- Quote:
|
Quote:
Вот тут человек искал нормальную Art-studio 128. Нашёл. :) |
Ну, значит не с VT стянул.. Но точно помню, что запускал на эмуле! Видимо на другом компе лежит. На этом, че-то не нашел. :(
|
Quote:
Искать же в ArtStudio конкретную реализацию - с программистской точки зрения - долгонько. А с пользовательской - пока одной версии 2.3 mod Viator/RUSH хватает. Вот если конкретное описание портов... |
Вероятнее всего sinclair мыш - имитация с помощью мыши одноименного джойстика (на кемпстон джой такая фича была - moa mouse, называется!:))
Quote:
|
1 Attachment(s)
Quote:
|
Вообще-то мышей для спека куча, всякие там amx, ay и т.д.
На наших отечественных просторах стал типа стандарт kempston мыша... Но и даже тут мы впереди планеты всей. То, блин, вокнут два триггера в разъём джойстика (который #1f) и кричат что мыша клёвая, то прицепят девайс как надо, зато кнопки перепутают... В общем мыша на спеке это такой шлак, что нельзя юзать драйвера предлагаемые кем-либо, а нужно писать свой, который учтёт все вариации. А начать нужно с того, что зайти на zx.press.ru и задать в строке поиска например "mouse". P.S. И заранее облом! Потому что как ни выёживайся, но полноценного юзанья не получится, обязательно будут косяки ибо всего байт (8 бит) максимальной разрядности. |
Quote:
чтобы случился глюк, мышку надо двигать ОЧЕНЬ быстро. реально все работает ок. и принято было делать драйвер, что первая нажатая кнопка мыши - левая. и еще вносили нелинейность в движение мыши (чтобы быстрее двигалась). |
Quote:
В винде это не приведет ни к чему, разве что курсор децл сместится. На спеке вполне вероятно (и скорее всего) что он "перепрыгнет" через скрин и вылезет где угодно... Сие оттого что как было сказано 8 бит у спековой мыши (да и у шины данных). Насчет кнопок: Это здорово придумано, вместо путалова кнопок - первая нажатая = левая. Давайте расширим эту гениальную мысль, в автомобиле первая включеная передача считается задней! Весело? Это не критиканство, это в общем-то призыв наконец-то стандартизировать все эти дела. |
В нормальных продуктах (например в той же открывашке или ЧВ) мышака настраивается. Ингда даже есть функция выбора левой кнопки.
Разрешение в 256х256 точек, конечно не есть гуд, заставляющий опрашивать мыш быстрее. Чтобы триггер не сделал полный оборот.. Драйвер надо нормальный написать и проблем никаких не будет. Очень, например огорчает факт отсутствия управления мышью в НЛО-1. Там его очень не хватает! |
Quote:
Скажу по большому секрету- нормальный драйвер мыши не просто считывает данные из портов, он их еще и обрабатывает. И на предмет переполнения счетчиков и на предмет границ экрана/области. Единственное влияние 8 бит счетчика- при резких перемещениях, когда увеличение счетчика на большие значения может быть интерпретировано как уменьшение. Но это уже мелочи и не имеют практического влияния. |
Quote:
Quote:
да и что плохого в первой нажатой? думаю, ничего. а с машиной - это перебор. |
Quote:
Quote:
Quote:
Quote:
---------- Post added at 11:35 ---------- Previous post was at 11:31 ---------- Quote:
А уж про достопочтимых немов, канов и других инвалидов zx-фронта я вообще молчу... |
Quote:
|
Quote:
Или zx-format запусти, они ведь гуры, они ведь светоч наш и надежда всея руси! И то лагают... В общем я не хочу флейм разводить, хотя с тобой можно (ты ведь вроде курируешь эту тему :) ), я выразился ясно: Универсального драйвера нет и никогда не будет, ибо железо кривое и никто стандарта не задавал. Куда идти за справками я тоже обозначил. Всё, спасибо за внимание! |
Quote:
глюки могли быть, если ты настоящую мышку ps/2 юзал, в которой УЖЕ есть ускорение. но это не есть тот к.маус, который был описан изначально. |
Абсолютно в дырочку! :) Оригинальная схема мауса заточена под "пассивную" мышь, а всякие контроллера позволяющие подключать pc\2 мышу напрямую к интерфейсу зачастую работают как бог на душу положит. Интересно с подключением РСшной клавы такие же грабли?! 8о
|
Quote:
Вертите как хотите, аудиторию теряйте... Вот нету у меня сейчас железа реального, и уже вряд-ли появится... Что делать? Убится ап стену? Или всё-таки будет нормальная поддержка мыша (пусть даже виртуального, ps/2)? |
Ну.. допустим эмулятор - реализация того, чего на самом деле нет. Но там все максимально стабильно. На реале же слишком большой разброс ТТХ и схемных реализация, даже внутри одной модели клонов. Ждать тотальной стандартизации в схемах спектрума и его периферии, то же самое, что прихода светлого будующего в отдельно взятой стране! ;)
|
Quote:
Видать я безнадёжный романтик... Но ведь как zx-гуры сказали: "Пишите всё под стандарт, суки!" |
Quote:
Quote:
Quote:
|
Quote:
|
Quote:
Готов извинится перед теми старыми мышками! А счас-то что делать? Как юзать софт, да ещё на эмуле (реального-то железа уже фиг найдёш) писаный под-знает-что? Я собственно ратую за то, чтоб ЛЮБОЙ ТИП МАНИПУЛЯТОРА однозначно распознавался программой. То-же самое относится и к памяти, и к накопителю, и даже к тактам(раз уж нашлись такие сволочи которые pentagon придумали) |
Quote:
|
INFO ABOUT MOUSE FOR ZX
|
Ну, ребята, почти оффтопный почти флейм в теме раздела "для начинающих"...
Я просто удивляюсь, но пишите все равно - почти в тему и интересно, а, может, и польза выйдет. Я-то заглянул про Sinclair Mouse почитать... |
MS_DET LD HL,#27FF
LD E,L LD BC,#FADF MT_D0 IN A,(C) CPL AND 7 JR Z,MT_D1 LD E,0 MT_D1 DEC HL LD A,L OR H JR NZ,MT_D0 RET MOUSE LD BC,#FADF:IN A,(C):AND 7:XOR 7 LD (MBUTT),A LD HL,(MCOOR),B,#FF:IN A,(C) MOS11 LD D,0,(MOS11+1),A:SUB D CALL NZ,MOS30:LD B,#FB:IN A,(C) MOS12 LD D,0,(MOS12+1),A:SUB D CALL NZ,MOS40:LD (MCOOR),HL:RET MOS30 JP P,MOS35:XOR #FF:INC A:ADD A,H LD H,A:CP VMAX+1:RET C LD H,VMAX:RET MOS35 LD D,A:LD A,H:SUB D:JP C,MOS37 LD H,A:CP VMIN:RET NC MOS37 LD H,VMIN:RET MOS40 JP P,MOS45:XOR #FF:INC A:LD E,A LD A,L:SUB E:JP C,MOS43 LD L,A:CP HMIN:RET NC MOS43 LD L,HMIN:RET MOS45 ADD A,L:JP C,MOS46 LD L,A:CP HMAX:RET C MOS46 LD L,HMAX:RET MINIT LD B,250 MINI1 LD A,#FB:IN A,(#DF):XOR #FF JR NZ,MINI2:DJNZ MINI1 SCF:RET MINI2 CALL MOUSE XOR A:LD (MBUTT),A LD HL,#6080,(MCOOR),HL RET ---------- Post added at 21:34 ---------- Previous post was at 21:33 ---------- Не правда-ли похоже на репортаж из дурдома? А ведь тем не менее это рабочий мышкин код! |
На чем написаны листинги? В, смысле, какого ассемблера мнемоники?
|
Quote:
Вот мой древний вариант: Code:
LD HL,(X_C) |
Я нашел у Znahar в макросах вариант, который немного оптимизировал:
Code:
MOUSEB DB 0 ; состояние кнопок |
В программе Camerton юзается вот такой драйвер:
MOUSE LD BC,#FADF IN A,(c) CPL AND 7 LD B,A LD A,(MBUTT) CP B LD A,1 JR NZ,MSTRT XOR A MSTRT LD (MSTATUS),A LD A,B LD (MBUTT),A LD HL,(MCOOR) LD BC,#FBDF IN A,(C) MOUS0 LD D,0 LD (MOUS0+1),A SUB D LD D,A LD A,(MSENS) LD B,A OR A JR Z,$+6 SRA D DJNZ $-2 LD BC,(XMNMX) LD A,D RLA JR NC,MOUS1 LD A,L ADD A,D JR NC,$+5 CP B JR NC,MOUS2 LD A,B JR MOUS2 MOUS1 LD A,L ADD A,D JR C,$+5 CP C JR C,MOUS2 LD A,C MOUS2 LD L,A,BC,#FFDF IN A,(C) MOUS3 LD D,0,(MOUS3+1),A SUB D NEG LD D,A LD A,(MSENS) LD B,A OR A JR Z,$+6 SRA D DJNZ $-2 LD A,D LD BC,(YMNMX) RLA JR NC,MOUS4 LD A,H ADD A,D JR NC,$+5 CP B JR NC,MOUS5 LD A,B JR MOUS5 MOUS4 LD A,H ADD A,D JR C,$+5 CP C JR C,MOUS5 LD A,C MOUS5 LD H,A LD BC,(MCOOR) LD (MCOOR),HL OR A SBC HL,BC RET Z LD A,(MSTATUS) OR 2 LD (MSTATUS),A RET MINIT LD BC,#FADF LD DE,#F000 MINI1 IN A,(C) CPL AND 7 OR E LD E,A DEC D JR NZ,MINI1 LD A,E OR A JR Z,MINI2 LD A,201 LD (MOUSE),A RET MINI2 CALL MOUSE XOR A LD (MBUTT),A LD HL,#6080 LD (MCOOR),HL LD A,1 LD (MOUSE),A MSTATUS DB 0; %01-изм.бат. %10-изм коор. (признак изменения состояния) MCOOR DW #6080; Координаты мыши MBUTT DB 0; Кнопочки 00000MRL MSENS DB 1; Чувствительность 0-max XMNMX DW #00FE; X-ограничитель YMNMX DW #00BD; Y-ограничитель Можно регулировать чувствительность крыса... |
| All times are GMT +4. The time now is 23:57. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.