MSX Village forum

L'atelier les décodages entrées/sorties comment ça fonctionne

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 15/05/2021 à 13h22

Reprise du message précédent

le VDP lui aussi répond a plusieurs adresses

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

sur les VDP MSX1 c'est le signal MODE qui est connecté au Bit d'adresse A0 ce qui donne -> 98h 99h

sur les VDP MSX2 ce sont les signaux MODE0 et MODE1 qui sont connectés au Bits d'adresses A0 et A1 ce qui donne -> 98h 99h 9Ah 9Bh

remarque : malheurement pour nous le V9978 n'a jamais vu le jour

Le Yamaha V9990 est le successeur du V9958 et soi-disant une version allégée du Yamaha V9978 jamais fini, qui était destiné à être utilisé pour le MSX3.

Le V9978 aurait soi-disant une compatibilité logicielle descendante avec le V9958,

et il y a des rumeurs jamais confirmées sur d'autres fonctionnalités du V9978 comme un bus de données 16 bits et la prise en charge du DMA.


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 15/05/2021 à 14h46
Donc si on veut ajouter le support du MSX-Music Light en interne sur une machine (sans la ROM et sans la sortie RCA) il faut que notre montage soit branché aux signaux : A0-A7, DO-D7, CLOCK, /IORQ, /WR, /RESET, SOUNDIN, GND et +/- 12V.

J'ai vu que tous ces signaux étaient accessibles depuis le port cartouche (https://www.msx.org/wiki/MSX_Cartridge_slot) donc ça ne semble pas extrêmement compliqué d'ajouter le support MSX-Music Light via une cartouche, mais comment faire si on veux que ce soit directement dans la machine ? J'imagine que ça dépend de la machine, mais il y a des endroits sur la carte mère des MSX ou ces signaux sont accessibles pour brancher un montage ?
Question peut-être naïve, mais ça ne va pas créer des interférences de se brancher directement sur le bus de donnés interne par ex. ?


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 15/05/2021 à 15h30
le plus facile pour un montage serait de souder le composant sur un autre qui a déja des pattes communes et qui est prés du bus

aprés par expérience on peut le cabler sur un circuit séparé qui serait relié au bus

exemple foullis ici : https://www.msx.org/forum/msx-talk/hardware/fm-pak-inside-msx2

et ici dans un 8280 ou l'on voit bien que le cablage n'est pas important pour les interférences ;) : https://www.msx.org/forum/msx-talk/hardware/internal-msx-music-extension?page=1

et sur un circuit monté en gigogne sur le Z80 ici ( images dans le dossier PICS ) : https://github.com/RBSC/F4-FMPAC

le bus est présent partout et coté numérique ça ne génére pas d'interférences, c'est plutôt coté pré-ampli qu'il faut soigner le montage :)

d'autres exemples en PDF sur ce site : https://www.retromsx.com/tutoriales-msx/


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 15/05/2021 à 17h11
Merci pour les infos.
Ca donne presque envi de s'y mettre. ^^
Le plus simple ça serait p'être de se brancher au niveau du port cartouche où tous les signaux semblent facilement accessibles.

Mais bon, il vaut mieux que je me concentre sur ce que je sais faire : programmer.
D'autant que je dois finir mon jeu Final Smash et j'ai prévu de créer une librairie C pour utiliser facilement le V9990 que j'ai commandé.
Il me faudra aussi des libs pour MSX-Music et les autres puces sonores.


On est toujours ignorant avant de savoir.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 16/05/2021 à 12h10
Encore quelques petites questions : sur le montage du MSX-Music Light, comment fonctionne la lecture de la ROM ?
Elle n'est relié qu'à D0-D7 (pour les données) et A0-A13 (pour l'adresse), /CS1 et /SLTSL.
Déjà, le fait qu'elle n'accède qu'à 14-bits d'adresse fait qu'elle est forcement en page 1 ? (adresse 0000h-3FFFh)
J'ai vu que /CS1 est décrit comme «_ROM addresses 4000-7FFF select signal_». C'est le 15e bits d'adresse ?
A quoi sert /SLTSL ? Il est décrit comme «_Slot select signal_» mais je ne comprends pas à quoi il sert concrètement.
Comment se fait la lecture/écriture ? (même si dans ce cas, c'est uniquement de la lecture)
C'est entièrement contrôlé par le Z80 ?
Comment il s'assure qu'aucune autre puce reliée au bus de donnée n'y mette des infos !?


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 16/05/2021 à 13h57
d'abord en premier il faut voir la rom comme une cartouche dans un slot ( on verra par la suite comment la mettre en interne )

le signal /SLTSL ( slot select ) est ce qui permet l'accés a cette cartouche qui peux être insérée dans n'importe quel slot

le fait que /CS1 soit utilisé implique bien que la rom est adressée de 4000h à 7FFFh

il faut juste voir cette cartouche comme une extension du systéme qui ajoute des commandes Basic spéciales pour la FM-PAC

comme c'est une rom aucun info ne peut être stockée dedans
----------------------------------
les ROMS du MSX et la mémoire RAM sont toutes affectées a un signal /SLTSL ( slot select )

il suffit de voir le mapping interne de la machine pour comprendre l'architecture et les SLOTS employés

Exemple : Mapping du Philips NMS 8250



on y voit que les seules plages internes libres de 4000h a 7FFfh sont dans le SLOT 30 et le SLOT 31

le SLOT 32 étant affecté a la mémoire RAM et le SLOT 33 a la ROM DISQUE

donc dans notre cas pour la ROM de la FM-PAC et un 8250 d'origine le choix est limité a 2emplacements en interne

aprés le MSX étant bati autour d'un S3527 ( puce systéme ) tous les signaux ne sont pas accessibles facilement

donc le Signal /SLOT30 est récupérable sur la SUBROM ( expanded basic ) est le /CS1 sur un des SLOT 1ou 2










:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 17/05/2021 à 23h05
Dans le cas de RAM qu'on ajouterai de la même manière, comment elle sait que l'accès à ses données est en lecture ou un écriture ?
Avec les signaux /RD et /WR ou c'est encore autre chose ?


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 18/05/2021 à 14h30
pour ajouter de la RAM dans un MSX ça dépend de la machine

pour fonctionner une mémoire interne minimale a besoin de plusieurs signaux

la mémoire de nos MSX est de la DRAM ( ram dynamique ) qui a besoin d'être rafraichie en permanence

pour cela il y des signaux /RAS ( ROW) et /CAS ( COLUMN ) qui sont générés par le MSX à partir des signaux /CLOCK /MREQ et /RFSH

la mémoire a aussi son /SLTSL

il y a un signal /WE qui est fait par /RD et /MREQ qui permet de lire et d'écrire suivant que /WE est à 1 ou 0

le schéma viendra par la suite ;)

pour un MEMORY MAPPER il faut ajouter un décodeur pour les Ports FCh FDh FEh et FFh

le plus souvent avec les puces systémes S3527 et S1985 tout est intégré


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2908

Le 18/05/2021 à 20h44
Merci pour les infos :top


On est toujours ignorant avant de savoir.
Github    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie