{"id":1392,"date":"2021-01-28T21:22:55","date_gmt":"2021-01-28T20:22:55","guid":{"rendered":"https:\/\/www.pmd85.cz\/?page_id=1392"},"modified":"2021-01-28T21:40:01","modified_gmt":"2021-01-28T20:40:01","slug":"ovladac-mysi-typu-mouse602","status":"publish","type":"page","link":"https:\/\/www.pmd85.cz\/?page_id=1392","title":{"rendered":"Ovlada\u010d my\u0161i typu MOUSE602"},"content":{"rendered":"<p>Ovlada\u010d tohoto typu my\u0161i pro\u0161el z\u00e1sadn\u00edm v\u00fdvojem.<\/p>\n<p><a href=\"https:\/\/www.pmd85.cz\/?page_id=610\">Prvotn\u00ed ovlada\u010d<\/a>, pou\u017eit\u00fd ve h\u0159e Funny Fruits, sice fungoval, ov\u0161em neumo\u017e\u0148oval dynamickou zm\u011bnu rychlosti pohybu kurzoru my\u0161i a nepodporoval volbu citlivosti my\u0161i. V\u00fdhodou byla spojit\u00e1 trajektorie pohybu my\u0161i, nev\u00fdhodou omezen\u00e1 rychlost a zna\u010dn\u00e9 n\u00e1roky na kontinu\u00e1ln\u00ed v\u00fdpo\u010detn\u00ed \u010das procesoru.<\/p>\n<p>Proto byla jako z\u00e1klad dal\u0161\u00edch aplikac\u00ed vyvinuta a uvoln\u011bna verze 3. Umo\u017e\u0148uje v\u00fdb\u011br citlivosti my\u0161i, typicky kalibrovan\u00e9 pro emul\u00e1tor (cca 300CPI), HW my\u0161i ATARI\/Amiga (cca 130CPI) a historickou my\u0161 na b\u00e1zi pingpongov\u00e9ho m\u00ed\u010dku, coby relikt n\u011bkdej\u0161\u00ed kutilsk\u00e9 doby (cca 40CPI).<\/p>\n<h1>Popis ovlada\u010de<\/h1>\n<p>Ovlada\u010d sice umo\u017e\u0148uje volat v\u0161echny pou\u017eit\u00e9 procedury, ov\u0161em ofici\u00e1ln\u011b jsou u\u017eivateli nab\u00edzeny pouze tyto:<\/p>\n<ul>\n<li>MysDriver &#8211; vlastn\u00ed detekce pohybu po dobu cca 10msec<\/li>\n<li>MysDea &#8211; sma\u017ee kurzor my\u0161i na star\u00e9 pozici a obnov\u00ed pozad\u00ed pod n\u00edm<\/li>\n<li>MysAct &#8211; vykresl\u00ed kurzor my\u0161i na nov\u00e9 pozici<\/li>\n<li>MysDPISet &#8211; nastaven\u00ed citlivosti my\u0161i<\/li>\n<\/ul>\n<p>Krom\u011b toho lze vyu\u017e\u00edvat n\u00e1sleduj\u00edc\u00ed prom\u011bnn\u00e9 syst\u00e9mu:<\/p>\n<ul>\n<li>MysX &#8211; sou\u0159adnice X kurzoru my\u0161i \/word\/<\/li>\n<li>MysY &#8211; sou\u0159adnice Y kurzoru my\u0161i \/word\/<\/li>\n<li>MysXMin &#8211; L doraz kurzoru my\u0161i (min 0!!!) \/word\/<\/li>\n<li>MysXMax &#8211; P doraz kurzoru my\u0161i (max 281!!!) \/word\/<\/li>\n<li>MysYMin &#8211; H doraz kurzoru my\u0161i (min 0!!!) \/word\/<\/li>\n<li>MysYMax &#8211; D doraz kurzoru my\u0161i (max 244!!!) \/word\/<\/li>\n<li>MysAdr &#8211; adresa kurzoru my\u0161i ve videoram \/word\/<\/li>\n<li>MysAOld &#8211; star\u00e1 adresa kurzoru my\u0161i ve videoram \/word\/<\/li>\n<li>MysXCHG &#8211; nenulov\u00e1 hodnota ud\u00e1v\u00e1 p\u0159\u00edznak zm\u011bny pozice kurzoru \/byte\/<\/li>\n<li>MysRpt &#8211; po\u010ditadlo opakov\u00e1n\u00ed ve smy\u010dce (u\u017eivatel v\u017edy zjist\u00ed nulovou hodnotu) \/byte\/<\/li>\n<li>MysBit &#8211; ukazatel na grafickou p\u0159edlohu vybran\u00e9ho kurzoru dle MysX \/word\/<\/li>\n<\/ul>\n<p>Ovlada\u010d je vhodn\u00e9 um\u00edstit na adresu, d\u011blitelnou 256-ti, tedy kdekoliv na XX00h. Jin\u00e9 podm\u00ednky pro jeho um\u00edst\u011bn\u00ed v pam\u011bti nejsou. Pokud tuto podm\u00ednku nespln\u00edte vy, ovlada\u010d se na takovou adresu zarovn\u00e1 s\u00e1m a p\u0159ed sebou nech\u00e1 pot\u0159ebn\u00fd po\u010det nevyu\u017eit\u00fdch pr\u00e1zdn\u00fdch bajt\u016f (z principu v\u0161ak maxim\u00e1ln\u011b 255). Kl\u00ed\u010dov\u00e9 \u010d\u00e1sti ovlada\u010de si rovn\u011b\u017e automaticky zaji\u0161\u0165uj\u00ed, \u017ee budou le\u017eet na adres\u00e1ch s form\u00e1tem XX00h. Proto, pokud budete modifikovat k\u00f3d samotn\u00e9ho ovlada\u010de, m\u016f\u017ee se automaticky do ovlada\u010de vkl\u00e1dat nutn\u00fd po\u010det pr\u00e1zdn\u00fdch bajt\u016f, aby byly zaji\u0161t\u011bny v\u00fd\u0161e uveden\u00e9 po\u017eadavky. Bez toho by ovlada\u010d nebyl funk\u010dn\u00ed. D\u00e9lka origin\u00e1ln\u00ed verze ovlada\u010de je 1619 bajt\u016f a s jednotliv\u00fdmi verzemi se m\u016f\u017ee m\u011bnit.<\/p>\n<p>Filozofie pou\u017eit\u00ed ovlada\u010de je n\u00e1sleduj\u00edc\u00ed. P\u0159ed prvn\u00edm zavol\u00e1n\u00edm ostatn\u00edch procedur je vhodn\u00e9 nastavit citlivost my\u0161i pomoc\u00ed procedury MysDPISet. Pokud tak neu\u010din\u00edte, bude pou\u017eita p\u0159ednastaven\u00e1 citlivost pro my\u0161 emul\u00e1toru PMD-85 od RM-Teamu (cca 300CPI). N\u00e1sleduje prvotn\u00ed vykreslen\u00ed kurzoru my\u0161i procedurou MysAct. Pot\u00e9 u\u017e ve smy\u010dce prov\u00e1d\u00edme sekvenci vol\u00e1n\u00ed MysDriver &#8211; MysDea &#8211; MysAct. V r\u00e1mci t\u00e9to smy\u010dky se po n\u00e1vratu z procedury MysDriver m\u016f\u017ee prov\u00e9st \u010d\u00e1st u\u017eivatelsk\u00e9ho programu, ov\u0161em velmi kr\u00e1tk\u00e9ho (z pohledu pot\u0159eby strojov\u00e9ho \u010dasu CPU). Ve\u0161ker\u00e9 kreslen\u00ed na obrazovku je bezpe\u010dn\u00e9 pouze p\u0159i zhasnut\u00e9m kurzoru my\u0161i, tedy &#8222;PO&#8220; vol\u00e1n\u00ed procedury MysDea a &#8222;P\u0158ED&#8220; vol\u00e1n\u00edm procedury MysAct. Ale to je standardn\u00ed postup, pou\u017eit\u00fd ji\u017e v MS-DOSu. Ov\u0161em pokud si je program\u00e1tor jist\u00fd, \u017ee kreslen\u00ed na obrazovce nebude prob\u00edhat v m\u00edst\u011b, kde se nach\u00e1z\u00ed kurzor my\u0161i, m\u016f\u017ee na obrazovku kreslit kdykoliv.<\/p>\n<p>Vzorov\u00fd p\u0159\u00edklad vyu\u017eit\u00ed zm\u00edn\u011bn\u00fdch procedur a prom\u011bnn\u00fdch:<\/p>\n<pre>\tmvi a,1\t\t; citlivost my\u0161i pro emul\u00e1tor\r\n\tsta MysSensitivity\r\n\tcall MysDPISet\t; nastavit v ovlada\u010di\r\nStart\r\n\tcall Cls\t; vymazat obrazovku\r\n\tcall MysAct\t; aktivovat kurzor my\u0161i\r\n\tcall MouseKeyRelease ; po\u010dkat na uvoln\u011bn\u00ed tla\u010d\u00edtek\r\nLoop\r\n\tcall MysDriver\t; volat cca 10ms je\u017ed\u011bn\u00ed my\u0161\u00ed\r\n\tjm ClickLeft\t; test stisku L-tla\u010d\u00edtka my\u0161i\r\n\tjc Start\t; test stisku P-tla\u010d\u00edtka my\u0161i\r\nRefresh\r\n\tlda MysXCHG\t; test zm\u011bny sou\u0159adnic\r\n\tana a\r\n\tjz Loop\t\t; nebyla zm\u011bna =&gt; testuji ve smy\u010dce pohyb my\u0161i\r\n\tcall MysDea\t; byla zm\u011bna =&gt; sma\u017eu kurzor my\u0161i na star\u00e9 pozici\r\n\t...        \t; zde mo\u017eno bezpe\u010dn\u011b vykreslit n\u011bco na obrazovce\r\n\tcall MysAct\t; vykresl\u00edm kurzor my\u0161i na nov\u00e9 pozici\r\n\tjmp Loop\t; a n\u00e1vrat do smy\u010dky\r\n<\/pre>\n<p><a href=\"https:\/\/www.pmd85.cz\/wp-content\/uploads\/mouse602v3.txt\" target=\"_blank\" rel=\"noopener noreferrer\">Ovlada\u010d my\u0161i typu 602 verze 3 v assembleru i8080<\/a><\/p>\n<p><a href=\"https:\/\/www.pmd85.cz\/wp-content\/uploads\/demo0.zip\">demonstra\u010dn\u00ed \u00faloha kreslen\u00ed pomoc\u00ed my\u0161i &#8211; projekt v PSPadu<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ovlada\u010d tohoto typu my\u0161i pro\u0161el z\u00e1sadn\u00edm v\u00fdvojem. Prvotn\u00ed ovlada\u010d, pou\u017eit\u00fd ve h\u0159e Funny Fruits, sice fungoval, ov\u0161em neumo\u017e\u0148oval dynamickou zm\u011bnu rychlosti pohybu kurzoru my\u0161i a nepodporoval volbu citlivosti my\u0161i. V\u00fdhodou byla spojit\u00e1 trajektorie pohybu my\u0161i, nev\u00fdhodou omezen\u00e1 rychlost a zna\u010dn\u00e9 n\u00e1roky na kontinu\u00e1ln\u00ed v\u00fdpo\u010detn\u00ed \u010das procesoru. Proto byla jako z\u00e1klad dal\u0161\u00edch aplikac\u00ed vyvinuta a uvoln\u011bna [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":337,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/1392"}],"collection":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1392"}],"version-history":[{"count":12,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/1392\/revisions"}],"predecessor-version":[{"id":1409,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/1392\/revisions\/1409"}],"up":[{"embeddable":true,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/337"}],"wp:attachment":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}