OldComp.cz
http://www.oldcomp.cz/

Myš na PMD 85-3
http://www.oldcomp.cz/viewtopic.php?f=50&t=7566
Stránka 11

Autor:  Czech Human [ 19.07.2019, 23:58 ]
Předmět příspěvku:  Myš na PMD 85-3

Zdravím všechny příznivce tohoto stroje :) . Chtěl bych se zeptat, jakým způsobem se řeší připojení a zobrazení kurzoru myši k tomuto uberstroji varianty 85-3 pokud to tedy vůbec jde :-). Co jsem zatím vyčetl je, že myš nebyla zrovna v top5 (všech :lol: ) periferií a programové vybavení ji využívající je jedním slovem tristní když patrně existuje pouze v jednom kusu a to ještě jen pro variantu 85-1. Ten program se mi zatím nepodařilo v emulátoru úspěšně spustit, vytuhne mi to vždy na úvodní obrazovce (ovladač i program dle návodu se obvykle nahraje, pouze po JUMP 5000 už je emulátor jen krok od klinické smrti a pomůže leda studený reset - že by nějaký brouk v relátku?).

Ptám se proto že excelentní aplikace Solitér od RomBoru má sice hezký kurzor ale k pohybu používá klávesnici/joystick. Ne že by to nešlo hrát, ale myš by přeci jen byla ideální pro ovládání. :thumbup: Nevím zda je podpora pro myš součástí Solitéru ani hardwarovou myš nemám ale potěšilo by mě moct ji vyzkoušet alespoň v simulátoru a co není, to jednou může být, 64KB ZX spectrum myš ve svého typu GUI OS používat dovede tak proč ne i PMD :-).

Autor:  Libor L.A. [ 20.07.2019, 20:42 ]
Předmět příspěvku:  Re: Myš na PMD 85-3

Samozřejmě to lze provozovat. Na všech verzích PMD-85 úplně stejně, protože vše se řeší programově. Signály dvou tlačítek a čtyř rotačních clonek od pohybových snímačů se načtou z portu 8Ch, přičemž myš se fyzicky připojí na aplikační konektor s vyvedenou sběrnicí počítače (první konektor zprava při pohledu na PMD-85 zezadu). Protože je sběrnice oddělena obvodem MHB8286, tak to funguje i jako přímý čtecí port, jen je potřeba oddělit signály myši od datových linek sběrnice rezistory s přibližnou hodnotou 2k2. Samotnou myš používám zděděnou z ATARI 520ST. Ale prý je úplně stejně zapojená i ta od Amigy. Ale to jsem neověřoval.

Takže načíst signály z portu 8Ch a zpracovat.. Jde jen o to, jak rychle se to podaří zpracovávat signály myši. Na základě praktických zkoušek mohu potvrdit, že pro plynulý pohyb myši by mělo "stačit" tak 500 testů myši za vteřinu (což může případně vyvolat až 500 požadavků na posun kurzoru myši - s tím je třeba počítat). Ale jde to zvládnout. Připravovaná hra Funny Fruits je psána nativně jako testovací aplikace právě pro myš.

Autor:  Czech Human [ 21.07.2019, 00:35 ]
Předmět příspěvku:  Re: Myš na PMD 85-3

Díky za odpověď. Jako spíše neználkovi než znalému to tedy znamená že program si vše musí řešit sám a není potřeba nějaký ovladač? Nebo je ovladač potřeba jen když se s tím programátor nechce "zdržovat" a jen se ho pak dotazuje na vstupy do programu? Nějak tu myš detekovat je snad potřeba?

Já doposud žil v představě že ovladač je potřeba vždy nahrát do paměti předem (i kdyby třeba v rámci nahrání daného programu když už ne separátně). A že program může získat s ovladačem relativně snadno podporu použití myši právě dotazováním se ovladače.

Takhle to vypadá že stačí číst port ale implementace už je čistě na programátorovi. Pokud melu kraviny budu rád vyveden z omylu :-).

Autor:  hynek [ 21.07.2019, 06:38 ]
Předmět příspěvku:  Re: Myš na PMD 85-3

Libor L.A. píše:
což může případně vyvolat až 500 požadavků na posun kurzoru myši

Myslim, ze prakticky nema cenu prekreslovat kurzor mysi casteji nez 50x za vterinu - obnovovaci frekvence obrazovky. Souhlasim, ze detekce stavu mysi je potreba delat casteji, jinak se pri rychlejsim pohybu detekce nepodari nebo vykazovat chaoticky pohyb, ale kresleni kurzoru by se asi mohlo resit jinak a v jine casti kodu.

Autor:  Libor L.A. [ 21.07.2019, 06:47 ]
Předmět příspěvku:  Re: Myš na PMD 85-3

Je to přesně jak píšete. Buď si jako programátor napíšete část programu, která se bude starat jen o myš a spolupracovat s "nadřazenou" úrovní programu (myšleno významově, ne v technicko-prioritním pojetí), nebo využijete služeb již hotového ovladače, který připojíte ke svému programu a budete volat požadované funkce tohoto ovladače. Já jsem pro Funny Fruits udělal právě takový ovladač, který má jen minimum funkcí: 1) Zobraz kurzor myši, 2) zhasni kurzor myši, 3) otestuj myš na provedený pohyb a případně posun kurzor. Poslední z těchto funkcí je ta "hlavní", která dělá vlastní pohyb myši. Ve smyčce ji voláte stále dokola a ona provede sem tam pohyb kurzoru myši, pokud nastala změna její fyzické pozice. A v této programové smyčce můžete dělat kvaziparalelně i ostatní drobné úlohy.

Nezmínil jsem čtení tlačítek myši. To je tak jednoduchá věc, že volat ovladač je plýtváním času. Například test levého tlačítka myši a skok při jeho stisku se dá udělat takto:

in 8Ch
add a
jm adresa_skoku_při_stisku

Toť vše. 6 bajtů, 28T CPU včetně WAIT stavů, tedy cca 14 mikrosekund. Jen volání ovladače instrukcí CALL a návratová instrukce RET z podprogramu jsou delší. A kde je vlastní test tlačítka v těle ovladače.

Test pravého tlačítka je ale nutno udělat jinak:

in 8Ch
ana a
jm adresa_skoku_při_stisku

A ještě bych na závěr reagoval na poslední příspěvek ohledně toho, že překreslování kurzoru myši není nutno dělat tak často, jako test změny pozice. To je naprostá pravda. Je to geniální úvaha a já ji zkusím zapracovat do některého z budoucích děl. Pořád se mám co učit. A taky bych se měl fakt už začít inspirovat existujícími díly a neobjevovat Ameriku na každém rohu..

Autor:  Czech Human [ 22.07.2019, 09:21 ]
Předmět příspěvku:  Re: Myš na PMD 85-3

Děkuji za informacemi nabitý popis. Né že bych tomu zrovna moc rozuměl ale představu už mám :lol:.
Až to bude fungovat je v plánu ten ovladač od hry oddělit aby se dal případně použít i u jiných projektů samostatně? To by případně zrychlilo vývoj dalších aplikací i vybízelo něco napsat když je pro co.

Mám teď v hlavě myšlenku přidělat na PMD 85-3 moderní COM port výstup na linky TTL konektoru V.24 před optočleny aby se ušetřil aplikační konektor, přeci jen připojovat myš na 30pinový konektor když tam může být něco šikovnějšího (zvukovka, tiskárna...) mi přijde škoda. Sice hlavní účel použití je komunikace ven ale možnost připojit si COM myšku by taky nebyla k zahození. Plnit pingpong míček voskem do modifikované krabičky od jídla s mikrospínači ze sichrhajsky se mi moc nechce :mrgreen:.

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/