GFA
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Cartes Pokémon : la prochaine extension ...
Voir le deal

Joystick sur port Centronic ( // )

Aller en bas

Joystick sur port Centronic ( // ) Empty Joystick sur port Centronic ( // )

Message par Shadow272 Lun 23 Nov - 10:37

Joystick sur port Centronic ( // )
Par GT Turbo

Vous avez tous du déjà voir ou peut être vous possédez l'adaptateur qui permet de branché deux joysticks sur le port centronic pour rajouté deux autres joueurs, je viens de faire un petit tour sur le dur de mon Falcon et voila une routine Gfa qui permet de lire les valeurs des deux joy branché sur ce port :

[Vous devez être inscrit et connecté pour voir ce lien] :

Code:

'
' Centronic joy : Gfa rout
'
'                    GT Turbo(Cerebral Vortex)
'
ON BREAK GOSUB arret
ON ERROR GOSUB error
'
super%=GEMDOS(32,L:0)   !  Supervisor mode
'
@init_centronic
'
DO
  @centronic_joy
  '
  PRINT AT(10,10);joy_0&;" ";fire_0!;" ";
  PRINT AT(16,10);joy_1&;" ";fire_1!;" ";
  '
LOOP
> PROCEDURE arret
  '
  ' Don't modify or kill theses lines !!!
  '
  BYTE{&HFFFF8800}=7
  BYTE{&HFFFF8802}=old_reg_7|
  '
  ~GEMDOS(32,L:super%)
  EDIT
RETURN
> PROCEDURE error
  '
  ' Don't modify or kill theses lines !!!
  '
  BYTE{&HFFFF8800}=7
  BYTE{&HFFFF8802}=old_reg_7|
  '
  ~GEMDOS(32,L:super%)
  EDIT
RETURN
'
> PROCEDURE init_centronic
  '
  ' WARNING !!!!!!!!!!!!!!!!!
  ' Don't try to modify or kill theses lines !!!
  ' or you will have some problems when saving your code !!!!!
  '
  BYTE{&HFFFF8800}=7
  old_reg_7|=BYTE{&HFFFF8800}
  '
  a|=old_reg_7|
  a|=AND(a|,127)
  '
  BYTE{&HFFFF8800}=7
  BYTE{&HFFFF8802}=a|
  '
RETURN
'
> PROCEDURE centronic_joy
  '
  ' Normaly, the four next lines must be enough to
  ' test fire, in 68000 that will run correctly but
  ' in GFA, that doesn't run correctly !!!
  ' This is why i have addon 3 lines after this four lines !!
  '
  ' If somebody can explain me, i will be happy !!!
  '
  BYTE{&HFF8800}=14             ! Reg 14 yamaha
  a&=BYTE{&HFF8800}             ! Data
  '
  b&=AND(NOT (a&),32)           ! Test the bit 5
  fire_1!=(AND(a&,32)=0)        ! and set Fire_1!
  '
  ' Trick !!!!
  '
  a&=BSET(a&,5)                 ! I have to done that
  BYTE{&HFF8800}=14             ! coz else only one fire
  BYTE{&HFF8802}=a&             ! will be done !!!
  '
  ' End of trick !!
  '
  '
  BYTE{&HFFFF8800}=15
  joy_0&=NOT (BYTE{&HFFFF8800})
  joy_0&=AND(joy_0&,&HF0)
  joy_0&=SHR(joy_0&,4)
  '
  fire_0&=NOT (BYTE{&HFFFFFA01})
  fire_0&=AND(fire_0&,1)
  fire_0!=(fire_0&<>0)
  '
  BYTE{&HFFFF8800}=15
  joy_1&=NOT (BYTE{&HFFFF8800})
  joy_1&=AND(joy_1&,&HF)
  '
RETURN

Faudrait que je 'derange' ma boite a cable pour retrouver mon adaptateur, cela fait très longtemps que j'ai écrit ce source, donc si quelqu'un pourrait l'essayé pour etre sur que je publies pas une routine qui marche pas.

Faites attention par contre dans les procédures arret et error, vous avez deux lignes a insérer dans votre propre procédure d'arret, car sinon vous risquez de plus pouvoir faire de sauvegarde car chez Atari une partie de la gestion du lecteur de disquette et du port // passe par le meme registre dans la puce sonore !!

GT


Leglod :
Ya pas mal de jeux qui utilisaient ce système, par contre ce qui serai intéressent c'est le schéma de montage pour la fabriquer!
Shadow272
Shadow272
Admin

Messages : 329
Date d'inscription : 28/12/2017
Age : 65
Localisation : Hainaut Belgique

http://toutatari.blog4ever.xyz/

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum