Vše o MZ-800 - Joystick

 

Zpět Nahoru Další

JOYSTICK
Tato kapitola se věnuje obsluze joysticku. Joystick se připojuje vzadu na rozšiřující liště. Přes povel IN A,(F0H) se do akumulátoru ukládá informca zda se s joystickem hnulo nebo ne. Je možné zjistit zda bylo s joystickem pohnuto do osmi různých směrů. Přitom dává joystick při nestisknuté klávese pro střelbu následující hodnoty:
 

          nahoře
 

      FAH   FEH   F6H
vlevo FBH   FFH   F7H   vpravo
      F9H   FDH   F5H

           dole

Nyní hodntoy při stisknuté klávese pro střelbu:

          nahoře

      EAH   EEH   E6H
vlevo EBH   EFH   E7H   vpravo
      E9H   EDH   E5H

           dole

Bitový vzor akumulátoru se dá rozluštit,aby se dalo zjistit, jestli se s joystickem hnulo nebo ne.

Bit  0  :obsahuje  0  , když se s joystickem hnulo nahoru
bit  1  :   "      0  ,   "  "       "         "   dolů
bit  2  :   "      0  ,   "  "       "         "   doleva
bit  3  :   "      0  ,   "  "       "         "   doprava
bit  4  :   "      0  ,   "  "  stiskne klávesa pro střelbu
bit  5 - 7  "    vždy  1

Když je tedy stisknuta klávesa pro střelbu a joystick je tlačen doleva, jsou bity 2 a 4 nastaveny na 0, ostatní jsou v 1. Potom vychází následující vzor bitů : 11101011 = EB hexadecimálně ( viz. tab.). Potom napíšeme ještě program, který analizuje joystick z Basicu. Musí být vyvolán povelem USR ($5700).

Na následujících adresách jsou obsaženy hodnoty pro pohyb joysticku:

5800H:      hodnota pro joystick nahoru 1=nahoru  0=neobsaženo
5801H:       "    "     "     dolů      1=dolů    0=     "
5802H:       "    "     "     doleva    1=doleva  0=     "
5803H:       "    "     "     doprava   1=doprava 0=     "
5804H:       "    "  klávesu střelby    1=stisk.  0=nestisknuto

Nyní tedy příslušný program, který musí být vyvolán jako podprogram ve strojovém jazyce:

5700 DB F0      IN A,(F0H)    ;hodnota z joy. 1
5702 2F         CPL           ;komplementace hodnoty
5703 21 FF 57   LD HL,57FFH
5706 06 05      LD B,06       ;smyčka pro 5 hodnot
5708 23         INC HL
5709 F5         PUSH  AF      ;zachraň akumulátor
570A E6 01      AND 01        ;maskování posledního bitu
570C 77         LD (HL),A
570D F1         POP AF
570E 0F         RRCA          ;otáčej akumulátor
570F 10 F7      DJNZ 5708
5711 C9         RET

Samozřejmě mohou být volány 2 joysticky. Princip volání druhého joysticku je analogický k volání prvního joysticku. Ale místo port F0H musí být použit port F1H.

 

Úvod | Sharp MZ-800 | 8 bit klub Brno | Download | Kniha návštěv | Vyhledání na těchto stránkách | Mapa stránek

 

Tyto stránky byly naposledy aktualizovány dne 08. 02. 2014      Copyright © 05/2006 - SCAV - Pavel Brázda webmaster(c)scav.cz

 

 

Google