** ** ***** ** ** ***** ************ *** *** *** *** ** ** *** *** ** **** **** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ***** ** ** *** ** ** ** ** ** ***** ******* ** * ** ** ** ** ** ** ** ** ** ** *** *** *** *** *** *** ** verze 1.0 ** ** ***** ***** ***** ************ (c) 1992 by mZx software, BOX 93, 381 01 . Krumlov Program je uren pro vechny, kdo se zabvaj programovnm na SHARP MZ-800. Vichni, kdo program pouvaj mus dodret pravidla. 1. pokud si program zakoupte, smte jej bez jakkoli konzultace s nmi vestavt do vlastnch program. 2. to ale pouze v ppad, e program s nam ovladaem myi nebudete prodvat ani jakkoli it. 3. proto je tu bod 3 - kdo vestav n ovlada do svho komernho programu, mus ns o tom informovat a domluvme podmnky prodeje. Program byl vyzkouen s ATARI mouse, kterou, vzhledem ke stejnmu doporuujeme. Ml by ale samozejm chodit s kadou paraleln my. ----------------------------------------------------------------- H A R D W A R O V P R A V A ----------------------------------------------------------------- Pred pripojenm ATARI myi k Sharpu je nutn sprehdza signly na konektore myi poda nasledujcej tabuky: ============================================================= | slo pinu | signl | barva drtu | prava pre SHARP | ============================================================= | 1 | XB | hned | XA | ------------------------------------------------------------- | 2 | XA | oranov | XB | ------------------------------------------------------------- | 3 | YA | zelen | YA | ------------------------------------------------------------- | 4 | YB | modr | YB | ------------------------------------------------------------- | 5 | nezapojen | --- | +5V | ------------------------------------------------------------- | 6 | av tla. | lt | av tlatko | ------------------------------------------------------------- | 7 | +5V | erven | prav tlatko | ------------------------------------------------------------- | 8 | ZEM | ierna | nezapojen | ------------------------------------------------------------- | 9 | prav tla. | biela | ZEM | ============================================================= Konektor je sce nerozoberaten, ale i ten sa d "rozobra" a po prepjkovan znova zlepi. Kto chce uetri 15 KS (za toko som kpil nov a rozoberaten konektor), me si s tm da prcu. Po tejto prave meme pripoji my k SHARP MZ-800 na konektor pre JOYSTICK 1 alebo JOYSTICK 2. ----------------------------------------------------------------- P R O G R A M O V O B S L U H A ----------------------------------------------------------------- Pre pochopenie innosti alej opsanej rutiny MOUSE uvdzam strun popis innosti paralelnej myi. Paraleln my m pre kad smer (vodorovn a zvisl) vyveden dva vodie, na ktorch sa pri pohybe myi striedaj logick nuly a logick jedniky poda nasledujceho obrzku: vpravo (dolu) --------------------> XA (YA) ..... 0 0 1 1 0 0 1 1 XB (YB) 0 1 1 0 0 1 1 0 ..... dokola <-------------------- vavo (nahor) Je zrejm, e informciu o pohybe myi nenesie len jej okamit stav, ale aj stav predchdzajci, ktor mus by niekde uloen. alej popsan rutina MOUSE zabezpeuje dekdovanie pohybu myi. Vstupom z tejto rutiny je hodnota v registri A mikroprocesoru s vynulovanm hornm nibblom (bity 4-7). Bity 0-3 maj nasledujci vznam: bit 3 - jeho nastavenie signalizuje, e my vykonala krok v zvislom smere bit 2 - ak je nastaven bit 3, udva smer kroku 0 - krok nadol 1 - krok nahor ak je bit 3 nulov, nem iadny vznam bit 1 - jeho nastavenie signalizuje, e my vykonala pohyb vo vodorovnom smere bit 0 - ak je nastaven bit 1, udva smer kroku 0 - krok vpravo 1 - krok vavo ak je bit 1 nulov nem iadny vznam Rutina netestuje, i je stlaen prav alebo av tlatko myi. Stav tlatok sa d zisti jednoducho pretanm portu a testovanm prslunho bitu. Stav avho tlatka je na bite 4, pravho tlatka na bite 5. Takto testovanie je aleko rchlejie, ako keby mala vdy prebehn cel rutina MOUSE. Naprklad av tlatko otestujeme takto: IN A,(JOY) ;pretame port s mykou BIT 4,A ;testujeme tlatko However, komu by to nevyhovovalo, me test tlatok doplni do rutiny MOUSE, prpadne napsa plne nov rutinu. Tu je jedno z mnohch rieen obsluhy naej myky: ;---------------------------------------------------------------- ; ; TEST MY NA POHYB A SMER ZVISLE A VODOROVNE ; ; ; stav myi je prstupn na porte $F0 (JOY1) alebo $F1 (JOY2) ; s nasledujcim vznamom bitov: ; ; bit 0 ................XA ; bit 1 ................XB ; bit 2 ................YA ; bit 3 ................YB ; ; mstatn bity vstupu s v tejto rutine nevznamn ; ;------------------------------------------,--------------------- JOY EQU 0F0H ;alebo 0F1@ = JOY2 ; MOUQE: POP HL ;to he adresa minulho stavu LD B,(HL) ;vyzdvihneme ho IN A,(JOY) ;nov stav myi AND 00FH ;len toto je zaujmav LD (HL),A ;nov stav bude nabudce star INC HL ;vrti sa musme o krok alej PUSH HL XOR B RET Z ;iadna zmena LD C,A RLA XOR C AND 00001010B ;toto s zmeny RET Z ;iadne neboli LD E,A LD A,B RRA XOR B XOR C AND 00000101B ;tu je smer OR E ;vetko spolu RET ;---------------------------------------------------------------- Uveden rutina je relokovaten i v preloenom tvare. Vyaduje pecilny spsob volania: CALL MOUSE ;volanie rutiny DEFS 1 ;miesto pre uloenie predchdzajceho ;stavu myi Tento spsob volania vyaduje, aby rutina bola volan vdy z toho istho miesta. Tento nedostatok sa d odstrni dvoma spsobmi. Meme upravi rutinu tak, e vyhradme v pamti miesto pre schovu stavu myi a budeme ho uschovva a vyzdvihova priamo z toho miesta (na kor relokovatenosti). Alebo meme vytvori takto pomocn podprogram: MOUSE1: CALL MOUSE ;volanie rutiny DEFS 1 ;miesto pre stav myi RET ;nvrat do volajceho programu Umiestni ho meme kamkovek a volanie CALL MOUSE nahradme volanm CALL MOUSE1, ktor u me by kdekovek v programe. Praktick vyuitie rutiny MOUSE ukazuje demontran program DEMOMOUS. Kto vlastn my a u si ju poda nho nvodu upravil, me spusti program DEMOMOUS.COM. Kto my ete nem, me sa aspo pozrie do DEMOMOUS.MAC, ako to funguje. Po spusten DEMOMOUS.COM meme prostrednctvom myi pohybova ipkou po obrazovke. Pri stlaenom avom tlatku ipka zanechva za sebou stopu (kresl iaru). Stlaenim pravho tlatka vetko zmaeme. A nakoniec stlaenm oboch tlatok vyskome do CP/M. Dobr rada na zver. Je dleit testova stav myi o najastejie, a to i u pouijete rutinu MOUSE alebo si vytvorte vlastn. Pri rchlejch pohyboch myi a vch testovacch intervaloch me dochdza k tomu, e my urob medzi dvomi testovaniami dva kroky (nebodaj i viac). V tom prpade sa ned vyhodnoti, ktorm smerom tie dva kroky my urobila. Ak nhodou urob my medzi dvomi testovaniami kroky tri, vyhodnotme to ako krok jeden, ale opanm smerom (znmy strobovac efekt). Z tohoto dvodu sa napr. ned testova my v preruen od VBLNK. Testovanie 50-krt za sekundu je toti pomal. Program DEMOMOUS ukazuje, e sa d testova my vyhovujcou rchlosou a medzi testovanm stihn nejak jednoduch innos (napr. pohyb kurzorom alebo ipkou). Vea spechov pri tvorbe programovho vybavenia pre SHARP MZ-800 a upraven ATARI myku vetkm praje Jn Kotial, autor a mZx software, P.O.BOX 93, 381 01 esk Krumlov Telefon ( 038 ) 415 31