MSX Village forum

L'atelier [EN COURS] AY-3-8910 et YM2149. Le PSG la Totale.

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/09/2013 à 19h46
Salut à tous.

Pour mieux comprendre le PSG / SSG dans le MSX, rien de tel que de déterminer ou il commence et ou il termine.

Pour se faire, j'ai surligné les parties utilisées par ce PSG.

Je compte sur vous pour me corriger en cas d'erreurs ou d'oubli.


@Jipe: Un petit Flottement au niveau des Pin 9, 10 et 11de IC23. Je ne sais pas si elle entrent en compte dans la gestion du PSG :heink

@Fabf et GDX: Avez vous pris en compte une Pin reliée au PPI depuis le PSG? Edité par igal Le 07/09/2013 à 20h04


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 07/09/2013 à 20h36
Si tu veux utiliser un PSG seul ce n'est pas rentable de la sorte.
Tu vas utiliser de petite parties de "gros" composants qui servent aussi aux autres périphériques.

Le pin 10 du PPI (key click) va sur le mixer avec les entrées son des slots.
galine Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 27/08/2010 à 02h22

Messages: 1363

Le 07/09/2013 à 21h20
marrant je n'ai jamais entendu le key click ca doit etre plus sur les msx genre clavier gomme ^^

Google+    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/09/2013 à 21h30
En Rouge Nécessite un SLOT SELECT
En Vert fonctionne en I/O.

Concernant les éventuels BIOS, la règle est assez simple puisqu'il faut en fonction de sa taille, utiliser:
16Ko => CS1 (???)
16Ko => CS2 (Fm Pac et clones)
32Ko => CS12 (Fm Pac et clones ainsi que Music Module Original)
64Ko => SLOT SELECT (Fm Pak, FRS 3.1)
128Ko => SLOT SELECT (MoonSound, SCC)


L'idée est en fait de...
1) Utiliser un AY-3-8910 PSG.
2) Remplacer le AY-3-8910 par un YM2149 SSG (Juste une patte à modifier)
3) Remanier le câblage pour mapper un YM2608 compatible SSG et intégrant la FM à la place du YM2149.
4) Ajouter l'OPL3 YMF262 pour la FM des OPL1, OPL3, OPL4. (voir même OPLL + OPL1 simultanément avec MS2)
5) Ajouter l'YM2413 OPLL.

Si possible:
6) Exploiter si possible l'ADPCM du YM2608 en remplacement de l'ADPCM du Y8950 MSX-AUDIO.
Nécessite d'avoir des registres identiques entre l'YM2608 et l'Y8950. (Faut voir comment c'est foutu)

Si vraiment tout est ok:
7) Remplacer l'OPL3 YMF262 par l'YMF297-F qui est hybride des familles OPLx et OPNx mais sans prises en charge des ADPCM et/ou WAV.

C'est pas gagné, mais ca mérite réflexion :oups Edité par igal Le 26/09/2013 à 20h39


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 07/09/2013 à 22h40
galine :
marrant je n'ai jamais entendu le key click ca doit etre plus sur les msx genre clavier gomme ^^


Quand tu appuie sur une touche tu entends un clac qui est produit par le PPI.

Il est plus ou moins présent selon les machines, à tester sur un MSX1 en montant le volume ;)
galine Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 27/08/2010 à 02h22

Messages: 1363

Le 07/09/2013 à 23h37
il me semble que c'est réglable ça sous basic non?.
Google+    
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 07/09/2013 à 23h38
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/09/2013 à 01h03
Voici le schéma réduit à l'audio:

Identification des CI:




Concernant IC23 je pense pas qu'il soit nécessaire de relier les Pins 9, 10 et 11.
Faut que j'identifie précisément le CI et voir le DATASHEET pour en être sur. Edité par igal Le 08/09/2013 à 02h28


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10733

Le 08/09/2013 à 12h19
voici en gras le décodage des ports du PSG
sur la puce numérotée 23 il doit y avoir la décodage pour le port A0H sur la pin 12 , combiné aux signaux A0 A1
les autres sorties doivent aller activer d'autres adresses pour d'autres périhériques

I AY-3-8910 Programmable Sound Generator (PSG)

Port A0 PSG Index 00-0Fh (Write Only)
Port A1 PSG Data Write
Port A2 PSG Data Read


The AY-3-8910 is a I/O chip with 3 sound generators.
It controls the three MSX standard audio channels, joystick and cassette.

PSG Registers 00-0Fh are:

00 = Frequency channel A, low (0-255)
01 = Frequency channel A, high (0-15)
02 = Frequency channel B, low (0-255)
03 = Frequency channel B, high (0-15)
04 = Frequency channel C, low (0-255)
05 = Frequency channel C, high (0-15)
The actual listened frequency in Hertz is calculated as follows:

F = 3.579545MHz / 32 / nn ;with nn in range 0..4095


06 = Noise period (0-31)
The actual noise frequency in Hertz is calculated as follows:

F = 3.579545MHz / 32 / nn ;with nn in range 0..31


07 = Mixer

Bit Expl.
0 Channel A tone enable (0=Enable,1=Disable)
1 Channel B tone enable (0=Enable,1=Disable)
2 Channel C tone enable (0=Enable,1=Disable)
3 Channel A noise enable (0=Enable,1=Disable)
4 Channel B noise enable (0=Enable,1=Disable)
5 Channel C noise enable (0=Enable,1=Disable)
6 I/O port A mode (0=Input, 1=Output)
7 I/O port B mode (0=Input, 1=Output)


08 = Volume channel A (0-15, 16=Envelope)
09 = Volume channel B (0-15, 16=Envelope)
0A = Volume channel C (0-15, 16=Envelope)

0B = Envelope Frequency, low (0-255)
0C = Envelope Frequency, high (0-255)
Envelope step frequency (tone or noise) calculated as follows:

F = 3.579545MHz / 32 / nn ;with nn in range 0..65535

Depending on the envelope shape, the volume is incremented from 0 to 15, or decremted from 15 to 0. In either case it takes 16 steps to complete, the completion time for 16 steps is therefore:

T = nn*512 / 3.579545MHz ;with nn in range 0..65535 (0-9.37 seconds)


0D = Envelope shape (0-15)

CONT ATT ALT HLD
0 0 X X _________ 0-3 (same as 9)
0 1 X X /_________ 4-7 (same as F)
1 0 0 0 \\\\\ 8 (Repeating)
1 0 0 1 _________ 9
1 0 1 0 ///// A (Repeating)
1 0 1 1 """"""""" B
1 1 0 0 ////////// C (Repeating)
1 1 0 1 /""""""""" D
1 1 1 0 ///// E (Repeating)
1 1 1 1 /_________ F


0E = I/O port A (Joystick and Cassette Input)

Bit Expl.
0 Joystick Up (0=Moved, 1=Not moved)
1 Joystick Down (0=Moved, 1=Not moved)
2 Joystick Left (0=Moved, 1=Not moved)
3 Joystick Right (0=Moved, 1=Not moved)
4 Joystick button A (0=Pressed, 1=Not pressed)
5 Joystick button B (0=Pressed, 1=Not pressed)
6 Keyboard Switch (Japanese SVI machines only ?)
7 Cassette input


0F = I/O port B (Joystick Select Output)

Bit Expl.
0 1 (Used as handshaking output if touchpad)
1 1 (Used as handshaking output if touchpad)
2 1 (Used as handshaking output if touchpad)
3 1 (Used as handshaking output if touchpad)
4 Pulse 1 (Positive pulse starting a monostable timer)
5 Pulse 2 (Positive pulse starting a monostable timer)
6 Joystick select (0=Connector 1, 1=Connector 2)
7 LED Code LED, if any (0=On, 1=Off)


Bits 4 and 5 is used by a program which uses a paddle (analog-joystick). A short positive edge pulse on bit 4 (or 5) starts a monostable timer (in the attached paddle) and the paddle sets one of the joystick bits in register 14 low (FIRE A (FIRE B),L,R,D or U). When the monostable times out, the joystick bit in port 14 is set high again. The length of the counting period of the monostable timer is set (in the attached paddle) by a variable resistor. The computer can determine the position of the variable resistor by measuring the time while the joystick bit in register 14 is low.
The Code LED is included in models that have a locking function for the CODE key, such like Japanese, Russian, or Korean models which are enabling the native character set by that key, and by some US/European MSX1 BIOSes. Otherwise, if the Code key is active only when held down, no Code LED is included.


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/09/2013 à 14h18
Jipe :
voici en gras le décodage des ports du PSG

sur la puce numérotée 23 il doit y avoir la décodage pour le port A0H sur la pin 12 , combiné aux signaux A0 A1

les autres sorties doivent aller activer d'autres adresses pour d'autres périhériques



I AY-3-8910 Programmable Sound Generator (PSG)



Port A0 PSG Index 00-0Fh (Write Only)

Port A1 PSG Data Write

Port A2 PSG Data Read




Tu veux dire que la Combinaison [IC23 LS139] et [IC52 LS02] Suffisent à décoder l'adresse [00-0FH] nécessaire à l'exploitation AUDIO du PSG sur MSX?



Si c'est ça alors tant mieux parce que je réduis le nombre de 9 CI à 2 CI seulement :top








Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10733

Le 08/09/2013 à 15h53
j'ai décortiqué l'adressage sortant du 74LS139

sortie

12 A0H
11 A8H
10 90H
9 98H

A0 W I AY-3-8910 PSG Sound Generator Index
A1 W I AY-3-8910 PSG Sound Generator Data write
A2 R I AY-3-8910 PSG Sound Generator Data read
A3-A7 NC Reserved

A8 R/W I 8255A/ULA9RA041 PPI Port A Memory PSLOT Register (RAM/ROM)
A9 R I 8255A/ULA9RA041 PPI Port B Keyboard column inputs
AA R/W I 8255A/ULA9RA041 PPI Port C Kbd Row sel,LED,CASo,CASm
AB W I 8255A/ULA9RA041 Mode select and I/O setup of A,B,C

90 R ULA5RA087 Centronic BUSY state (bit 1=1)
90 W ULA5RA087 Centronic STROBE output (bit 0=0)
91 W ULA5RA087 Centronic Printer Data
92-97 NC Reserved

98 R/W 9918,9929,9938,9958,9978 VRAM Data Read/Write
99 R 9918,9929,9938,9958,9978 VDP Status Registers
99 W 2nd Byte b7=0: 99X8 VRAM Address setup
99 W 2nd Byte b7=1: 99X8 VDP Register write
9A W MVDP (MSX2) 9938,9958 Color Palette Register (2 bytes)
9B W MVDP (MSX2) 9938,9958 Register data
9C-9F NC Reserved


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10733

Le 08/09/2013 à 15h55
non tu vas trop vite dans tes raisonnements il faut toutes puces pour faire le décodage

mais on peut aussi le faire d'une autre façon plus simple car celui ci décode plusieurs périphériques


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/09/2013 à 16h05
Ok je comprends pour les 9 CI et non pas 2.

Le fait qu'il me reste énormément de "Portes Logiques" non utilisées n'est pas vraiment gênant dans le sens ou par la suite, une fois le PSG/SSG fonctionnel, je voudrais "incrémenter" des Puces FM.

Ces portes me serviront sans aucun doute :top

Je vais donc travailler à une implantation avec tous ces CI et prévoir un max de place pour la suite ;)

Merci de ton aide :tchin

Edit: Je suis quand même intéressé par la méthode plus simple :D Edité par igal Le 08/09/2013 à 16h15


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 08/09/2013 à 17h51
Je suis preneur pour un décodage complet des adresses du PSG ^^
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 26/09/2013 à 20h22
@Jipe: Fabf à posté un lien qui fait référence au AY-3-8910.

Celui ci => http://www.s100computers.com/My%20System%20Pages/VDP%20Video%20Board/VDP%20Board.htm

On peut lire que:
Port #Lecture / écritureDescription
48HWÉcriture de données
49HWLoquet Adresse
48HRInutilisé
49HRLecture des données

La partie du schéma qui nous intéresse se trouve en [I 3].
http://www.s100computers.com/My%20System%20Pages/VDP%20Video%20Board/Printing%20S100_VDP-sch.pdf


Le décodage semble être celui qui convient sur MSX? Edité par igal Le 26/09/2013 à 20h28


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie