Polski

[ASM] Dokument o sygnale joysticka

Jeśli masz problem z instalacją oprogramowania nie wiesz jak ustawić poprawnie emulator WinUAE - ten dział jest dla Ciebie.
Anthrox Wrzucam sobie, żeby mi nie zginęło ;)
Poniższy dokument pozwala lepiej zrozumieć co się dzieje, gdy wciśniemy Fire / kierunki na joysticku.

Code: Select all

The fire buttons are normally opened switches routed to the 8520 adapter
PRA0 as follows:

        PRA0 bit 7 = Fire* left controller port
        PRA0 bit 6 = Fire* right controller port

Before reading this register, the corresponding bits of the data direction
register must be cleared to define input mode:

        DDRA0<7:6> cleared as appropriate

   NOTE:
   -----
   Do not disturb the settings of other bits in DDRA0 (Use of ROM kernel
   calls is recommended).

Fire buttons are always valid and may be read at any time.


CONNECTOR PIN USAGE FOR FIRE BUTTON INPUTS
------------------------------------------

   PIN   MNEMONIC   DESCRIPTION
   ---   --------   -----------
   1      -x-
   2      -x-
   3      -x-
   4      -x-
   5      -x-
   6      FIRE*     Left mouse button/fire button
   7      -x-
   8      ground
   9      -x-

            ___________                   ___________
   PORT 0  /           \         PORT 1  /           \
          |  o o o o o  |               |  o o o o o  |
           \  6        /                 \  6        /
            \ o o o o /                   \ o o o o /
             \|______/                     \|______/
   FIRE 0\
   _ _ _ _ _ _|                             |
  |                              FIRE 1\
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
  | 7   |                                                   0
     ___v___________________________________________________
  | |       |       |                                       | PRA
    |FIRE 1\|FIRE 0\|                                       | $BFE001
  | |_______|___ ___|_______|_______|_______|_______|_______|
                ^
  |_ _ _ _ _ _ _|

     _______________________________________________________
    |       |       |                                       | Data
    |   0   |   0   |   0       0       0       0       0   | direction
    |_______|_______|_______|_______|_______|_______|_______| DDRA
                                                              $BFE201
        IN      IN     OUT     OUT     OUT     OUT     OUT


                 Figure E-1: Reading Fire Buttons



Źródło: http://amigadev.elowar.com/read/ADCD_2. ... e010C.html

Przykładowy, zdeasemblowany fragment kodu w slave Lion Kinga, który jest odpowiedzialny za sprawdzenie czy wcisnęliśmy/przytrzymaliśmy Fire (jeżeli tak - aktywuje się cheat):

Code: Select all

0839 0007 00BF E001      btst   #$7,$BFE001
6622                     bne.s   


dla lewego przycisku myszki powinno być zatem:

Code: Select all

0839 0006 00BF E001      btst   #$6,$BFE001
6622                     bne.s   
Page 1 of 1 1 https://forum.thecompany.pl/winuae/assembler-dokument-sygnale-joysticka-t3420.html
2014-04-07T22:00:52+01:00
Wrzucam sobie, żeby mi nie zginęło ;)
Poniższy dokument pozwala lepiej zrozumieć co się dzieje, gdy wciśniemy Fire / kierunki na joysticku.

Code: Select all

The fire buttons are normally opened switches routed to the 8520 adapter
PRA0 as follows:

        PRA0 bit 7 = Fire* left controller port
        PRA0 bit 6 = Fire* right controller port

Before reading this register, the corresponding bits of the data direction
register must be cleared to define input mode:

        DDRA0<7:6> cleared as appropriate

   NOTE:
   -----
   Do not disturb the settings of other bits in DDRA0 (Use of ROM kernel
   calls is recommended).

Fire buttons are always valid and may be read at any time.


CONNECTOR PIN USAGE FOR FIRE BUTTON INPUTS
------------------------------------------

   PIN   MNEMONIC   DESCRIPTION
   ---   --------   -----------
   1      -x-
   2      -x-
   3      -x-
   4      -x-
   5      -x-
   6      FIRE*     Left mouse button/fire button
   7      -x-
   8      ground
   9      -x-

            ___________                   ___________
   PORT 0  /           \         PORT 1  /           \
          |  o o o o o  |               |  o o o o o  |
           \  6        /                 \  6        /
            \ o o o o /                   \ o o o o /
             \|______/                     \|______/
   FIRE 0\
   _ _ _ _ _ _|                             |
  |                              FIRE 1\
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
  | 7   |                                                   0
     ___v___________________________________________________
  | |       |       |                                       | PRA
    |FIRE 1\|FIRE 0\|                                       | $BFE001
  | |_______|___ ___|_______|_______|_______|_______|_______|
                ^
  |_ _ _ _ _ _ _|

     _______________________________________________________
    |       |       |                                       | Data
    |   0   |   0   |   0       0       0       0       0   | direction
    |_______|_______|_______|_______|_______|_______|_______| DDRA
                                                              $BFE201
        IN      IN     OUT     OUT     OUT     OUT     OUT


                 Figure E-1: Reading Fire Buttons



Źródło: http://amigadev.elowar.com/read/ADCD_2. ... e010C.html

Przykładowy, zdeasemblowany fragment kodu w slave Lion Kinga, który jest odpowiedzialny za sprawdzenie czy wcisnęliśmy/przytrzymaliśmy Fire (jeżeli tak - aktywuje się cheat):

Code: Select all

0839 0007 00BF E001      btst   #$7,$BFE001
6622                     bne.s   


dla lewego przycisku myszki powinno być zatem:

Code: Select all

0839 0006 00BF E001      btst   #$6,$BFE001
6622                     bne.s   

Return to WinUAE