La Place des Développeurs PSG R7 et R15 sur MSX KEZAKO ?
Cette fois je coince sur la programmation du PSG sur MSX, autant j'arrive à produire une musique convenablement autant je suis pas sur d'avoir bien compris le fonctionnement sur MSX 
Notamment la partie sur R7, est ce vraiment possible de détruire le matériel en changeant seulement les bit 6 et 7 de R7

En plus je ne comprends pas pourquoi en envoyant les données directement sur le port du PSG ($A0 et $A1) le deboggeur de bluemsx n'indique pas la valeur qui est envoyé dans R7, mais une autre comme si les bit 6 et 7 étaient toujours forcés à 0

Dans mon programme j'ai inséré cette partie dans le player pour justement R7, mais ca n'a pas l'air d'avoir un quelconque effet :
Citation:
Voici un petit player sous MSX-DOS 1 pour tous MSX (1 à TurboR) tout simple que j'ai programmé, vous verrez par vous même que les valeurs du registre R7 dans le deboggeur
AY3_TEST.zip
Register(s) Description
0-5 Tone generator control
6 Noise generator control
7 Mixer control-I/O enable
Important note: bit 6 must be 0, and bit 7 must be 1. Setting different values can cause damage on some systems. Safest approach is to just not touch them and read them first before writing a new value.
8-10 Amplitude control
11-13 Envelope generator control
14-15 I/O ports A & B
Une autre question concernant cette fois le registre R15 du PSG les bits 4 et 5 peuvent être mis en entrée (1) ou en sortie (0) comme pour les bits 0 à 3 (ca ma parait impossible par rapport au bit 6) ???
Ou est ce seulement possible en sortie ???
Voila d'avance merci pour vos éclaircissement

Notamment la partie sur R7, est ce vraiment possible de détruire le matériel en changeant seulement les bit 6 et 7 de R7


En plus je ne comprends pas pourquoi en envoyant les données directement sur le port du PSG ($A0 et $A1) le deboggeur de bluemsx n'indique pas la valeur qui est envoyé dans R7, mais une autre comme si les bit 6 et 7 étaient toujours forcés à 0


Dans mon programme j'ai inséré cette partie dans le player pour justement R7, mais ca n'a pas l'air d'avoir un quelconque effet :
Citation:
CP 7
JP NZ,PAS_IO
LD A,(DE)
RES 6,A
SET 7,A
JP NZ,PAS_IO
LD A,(DE)
RES 6,A
SET 7,A
Voici un petit player sous MSX-DOS 1 pour tous MSX (1 à TurboR) tout simple que j'ai programmé, vous verrez par vous même que les valeurs du registre R7 dans le deboggeur

AY3_TEST.zip
Register(s) Description
0-5 Tone generator control
6 Noise generator control
7 Mixer control-I/O enable
Important note: bit 6 must be 0, and bit 7 must be 1. Setting different values can cause damage on some systems. Safest approach is to just not touch them and read them first before writing a new value.
8-10 Amplitude control
11-13 Envelope generator control
14-15 I/O ports A & B
Une autre question concernant cette fois le registre R15 du PSG les bits 4 et 5 peuvent être mis en entrée (1) ou en sortie (0) comme pour les bits 0 à 3 (ca ma parait impossible par rapport au bit 6) ???
Ou est ce seulement possible en sortie ???
PSG I/O port B (r#15) – write/read
Bit Description Comment
0 Output joystick port 1, pin 6 Set to 1 to allow input
1 Output joystick port 1, pin 7 Set to 1 to allow input
2 Output joystick port 2, pin 6 Set to 1 to allow input
3 Output joystick port 2, pin 7 Set to 1 to allow input
4 Output joystick port 1, pin 8 ????
5 Output joystick port 2, pin 8 ????
6 Joystick input selection, for r#14 inputs 1 = port 2
7 Kana led control 1 = off
Bit Description Comment
0 Output joystick port 1, pin 6 Set to 1 to allow input
1 Output joystick port 1, pin 7 Set to 1 to allow input
2 Output joystick port 2, pin 6 Set to 1 to allow input
3 Output joystick port 2, pin 7 Set to 1 to allow input
4 Output joystick port 1, pin 8 ????
5 Output joystick port 2, pin 8 ????
6 Joystick input selection, for r#14 inputs 1 = port 2
7 Kana led control 1 = off
Voila d'avance merci pour vos éclaircissement


6502man :
Cette fois je coince sur la programmation du PSG sur MSX, autant j'arrive à produire une musique convenablement autant je suis pas sur d'avoir bien compris le fonctionnement sur MSX 
Notamment la partie sur R7, est ce vraiment possible de détruire le matériel en changeant seulement les bit 6 et 7 de R7

En plus je ne comprends pas pourquoi en envoyant les données directement sur le port du PSG ($A0 et $A1) le deboggeur de bluemsx n'indique pas la valeur qui est envoyé dans R7, mais une autre comme si les bit 6 et 7 étaient toujours forcés à 0

Notamment la partie sur R7, est ce vraiment possible de détruire le matériel en changeant seulement les bit 6 et 7 de R7


En plus je ne comprends pas pourquoi en envoyant les données directement sur le port du PSG ($A0 et $A1) le deboggeur de bluemsx n'indique pas la valeur qui est envoyé dans R7, mais une autre comme si les bit 6 et 7 étaient toujours forcés à 0


C'est une question en suspend. J'ai remarqué que plusieurs programmeurs ne respectaient l'état de ces deux bits.
http://www.msxvillage.fr/forum/topic.php?id=1523#m32653
Dans le MSX Datapack, ça dit seulement de mettre ces 2 bits ainsi. C'est tout.
D'après ce qu'on dit les dommages ne peuvent arriver que sur quelques vieux MSX et avec certains appareils branchés sur les ports joystick. De mon côté, j'ai seulement remarqué, et une fois seulement, des comportements bizarre du joystick lorsque ces bits n'étaient pas mis comme indiqué.
Voici une nouvelle version du pratique du MSX avec l'ajout d'un chapitre sur le PSG.
pratique du MSX.zip
Je comptais le mettre en ligne une fois ce chapitre fini mais bon, si ça peut t'aider. Il ne manque pas grand-chose. C'est principalement les explications sur la souris qui ne sont pas vraiment correctes. Le reste est aussi à fignoler mais tu devrais y trouver tout ce qu'il de faut. Edité par GDX Le 04/11/2016 à 09h13
Merci GDX tu est un chef

Ca réponds à plusieurs de mes interrogation

D’où le problème que j'avais constaté sur BlueMSX, et moi qui croyais que je mettais planté dans mon code Z80
Donc mon programme ne devrais pas endommager de MSX
Donc on peut bien passer la broche 8 en entrée ou en sortie


C'est exactement ce que j'avais déduis et donc ca confirme bien mon hypothèse
Les explications sur les registres du PSG sont très claire, félicitations pour tous ce travail
Edité par
6502man
Le 04/11/2016 à 19h16


Ca réponds à plusieurs de mes interrogation


Citation :
Les émulateurs mettent ces 2 bits à 0 par défaut par erreur (même BlueMSX).
D’où le problème que j'avais constaté sur BlueMSX, et moi qui croyais que je mettais planté dans mon code Z80

Donc mon programme ne devrais pas endommager de MSX

Citation :
Registre 15 : Ce registre permet de contrôler les broches des ports généraux à lire via le registre 14 ainsi que l'état de la LED « code » ou « Kana » selon le type de clavier.
Bit 0 = Contrôle de la broche 6 du port général 1*
Bit 1 = Contrôle de la broche 7 du port général 1*
Bit 2 = Contrôle de la broche 6 du port général 2*
Bit 3 = Contrôle de la broche 7 du port général 2*
Bit 4 = Contrôle de la broche 8 du port général 1 (0 pour mode joystick standard)
Bit 5 = Contrôle de la broche 8 du port général 2 (0 pour mode joystick standard)
Bit 6 = Sélection du port général lisible via le registre 14 (1 pour port 2)
Bit 7 = Contrôle de la LED de la touche « code » ou « Kana ». (1 pour éteindre)
Bit 0 = Contrôle de la broche 6 du port général 1*
Bit 1 = Contrôle de la broche 7 du port général 1*
Bit 2 = Contrôle de la broche 6 du port général 2*
Bit 3 = Contrôle de la broche 7 du port général 2*
Bit 4 = Contrôle de la broche 8 du port général 1 (0 pour mode joystick standard)
Bit 5 = Contrôle de la broche 8 du port général 2 (0 pour mode joystick standard)
Bit 6 = Sélection du port général lisible via le registre 14 (1 pour port 2)
Bit 7 = Contrôle de la LED de la touche « code » ou « Kana ». (1 pour éteindre)
Donc on peut bien passer la broche 8 en entrée ou en sortie


Citation :
Le schéma d'une manette standard (Type B) est le suivant...

Citation :
Notez que, dans ce cas, la broche 8 peut être remplacée par la masse.
C'est exactement ce que j'avais déduis et donc ca confirme bien mon hypothèse

Les explications sur les registres du PSG sont très claire, félicitations pour tous ce travail

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie