Uživatelské nástroje

Nástroje pro tento web


lnxspectrum:kempstonmouse

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
lnxspectrum:kempstonmouse [2015/11/30 22:31] lanexlnxspectrum:kempstonmouse [2021/01/28 23:45] (aktuální) – [Kempston Mouse] lanex
Řádek 10: Řádek 10:
 Na tomto portu není absolutní pozice 0-vlevo, 255-vpravo, ale poziční přírůstek. Pokud se myší posuneme například o 20 pixelů doprava, zvýší se sice hodnota na portu o 20, ale také může přetéct. To znamená, že pokud předchozí hodnota byla 250, přeteče a nová hodnota bude o 20 větší - tj. 14. ZX rutina s tím musí počítat. Naopak díky tomu nejsme omezeni na posuv jen v rozmezí 0-255. To platí samozřejmě i pro posuv vlevo, nahoru a dolů. Na tomto portu není absolutní pozice 0-vlevo, 255-vpravo, ale poziční přírůstek. Pokud se myší posuneme například o 20 pixelů doprava, zvýší se sice hodnota na portu o 20, ale také může přetéct. To znamená, že pokud předchozí hodnota byla 250, přeteče a nová hodnota bude o 20 větší - tj. 14. ZX rutina s tím musí počítat. Naopak díky tomu nejsme omezeni na posuv jen v rozmezí 0-255. To platí samozřejmě i pro posuv vlevo, nahoru a dolů.
 ===Tlačítka (Port 64223)=== ===Tlačítka (Port 64223)===
-Levé tlačítko je na bitu 0, pravé je na bitu 1. Hodnoty jsou negativní, tedy pokud není tlačítko stisknuté, je hodnota 1, pro stisknuté je hodnota 0.+Levé tlačítko je na bitu 1, pravé je na bitu 0 (Cože? Bohužel ano.). Hodnoty jsou negativní, tedy pokud není tlačítko stisknuté, je hodnota 1, pro stisknuté je hodnota 0.
 ====Čtení pozice myši na obrazovce pomocí assembleru==== ====Čtení pozice myši na obrazovce pomocí assembleru====
 <code> <code>
Řádek 17: Řádek 17:
  org 60000  org 60000
  
-; Zinicializujeme myš doprostřed obrazovky+; Zinicializujeme myš na pozici na obrazovce, kterou chceme 
 + ld a,128 
 + ld (MouseX),
 + ld a,96 
 + ld (MouseY),a
  call Mouse_init  call Mouse_init
  
Řádek 27: Řádek 31:
 ; Tady jen zobrazíme hodnoty X, Y a tlačítka myši ve VideoRam, aby byly vidět hodnoty ; Tady jen zobrazíme hodnoty X, Y a tlačítka myši ve VideoRam, aby byly vidět hodnoty
  ld a,(MouseX)  ld a,(MouseX)
- ld (16384),a+ ld (16384),a ;pozice X
  ld a,(MouseY)  ld a,(MouseY)
- ld (16386),a+ ld (16386),a ;pozice Y
  
  ld bc,64223  ld bc,64223
  in a,(c)  in a,(c)
- ld (16388),a+ ld (16388),a ;stav tlačítek
  jr smy ;a opakujeme 50x za sec  jr smy ;a opakujeme 50x za sec
  
-; Tady začíná rutina pro aktualizaci pozice myši+; Tady začíná inicializační rutina pro aktualizaci pozice myši
 Mouse_init: ld bc,64479 Mouse_init: ld bc,64479
  in a,(c)  in a,(c)
lnxspectrum/kempstonmouse.1448919072.txt.gz · Poslední úprava: 2018/07/31 10:04 (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki