L'atelier Le MSX et les signaux CS
aoineko
Membre non connecté
Conseiller Municipal
Hello,
Je comprends toujours pas à quoi servent concrètement les signaux /CS1, /CS2, /CS12 et /STSL.
J'ai relu ce fil de discussion, mais rien n'y fait.
Je comprends à quoi correspondent ces signaux, mais pas ce qu'en font concrètement les cartouches.
Ce sont des signaux de sortie (donc envoyé par le MSX à la cartouche), hors le MSX n'a aucune connaissance du type de ROM installé dans le slot à qui il envoie les signaux.
Du coup, j'imagine que c'est plus un filtre que la cartouche peut utiliser pour accepter ou non, les accès en lecture/écriture.
Genre une cartouche 16 KB en page 1, va ignorer tous les accès si /CS1 n'est pas à 0?
Ce que je ne comprends pas c'est que les pages peuvent déjà être filtré avec les signaux de l'adresse ; pourquoi rajouter ces signaux ?
C'est juste des raccourcit pour éviter d'avoir à faire certains "calculs" du coté de la cartouche ? Et donc simplifier les composants nécessaires ?
Et /STSL, il a 0 quand le slot de la cartouche est sélectionné via le PPI dans la page correspondant à l'adresse ?
@Jipe : C'est quoi le signal /CEROM dans tes schémas ? Edité par aoineko Le 19/02/2024 à 07h51
Je comprends toujours pas à quoi servent concrètement les signaux /CS1, /CS2, /CS12 et /STSL.
J'ai relu ce fil de discussion, mais rien n'y fait.
Je comprends à quoi correspondent ces signaux, mais pas ce qu'en font concrètement les cartouches.
Ce sont des signaux de sortie (donc envoyé par le MSX à la cartouche), hors le MSX n'a aucune connaissance du type de ROM installé dans le slot à qui il envoie les signaux.
Du coup, j'imagine que c'est plus un filtre que la cartouche peut utiliser pour accepter ou non, les accès en lecture/écriture.
Genre une cartouche 16 KB en page 1, va ignorer tous les accès si /CS1 n'est pas à 0?
Ce que je ne comprends pas c'est que les pages peuvent déjà être filtré avec les signaux de l'adresse ; pourquoi rajouter ces signaux ?
C'est juste des raccourcit pour éviter d'avoir à faire certains "calculs" du coté de la cartouche ? Et donc simplifier les composants nécessaires ?
Et /STSL, il a 0 quand le slot de la cartouche est sélectionné via le PPI dans la page correspondant à l'adresse ?
@Jipe : C'est quoi le signal /CEROM dans tes schémas ? Edité par aoineko Le 19/02/2024 à 07h51
On est toujours ignorant avant de savoir.
les cartouches n'en font rien c'est le MSX qui adresse sa plage de mémoire
en résumé
/CS1 adresse la plage de mémoire de 4000h à 7FFFh 16k
/CS2 adresse la plage de mémoire de 8000h à BFFFh 16k
/CS12 adresse la plage de mémoire de 4000h à BFFFh 32k
/SLTSL valide cette plage de mémoire dans un slot
les signaux étant / sont actifs quand le signal est à 0
ces trois signaux décodés a l'intérieur du MSX servent à éviter de mettre toutes les puces dans la cartouche et donc baisser fortement son cout de fabrication
le signal /CE ROM (Canon V20) est le décodage de la plage 0000h à 7FFFh qui arrive sur l'eprom 32k du MSX contenant le bios et le basic il peut avoir un autre nom suivant les schémas
en résumé
/CS1 adresse la plage de mémoire de 4000h à 7FFFh 16k
/CS2 adresse la plage de mémoire de 8000h à BFFFh 16k
/CS12 adresse la plage de mémoire de 4000h à BFFFh 32k
/SLTSL valide cette plage de mémoire dans un slot
les signaux étant / sont actifs quand le signal est à 0
ces trois signaux décodés a l'intérieur du MSX servent à éviter de mettre toutes les puces dans la cartouche et donc baisser fortement son cout de fabrication
le signal /CE ROM (Canon V20) est le décodage de la plage 0000h à 7FFFh qui arrive sur l'eprom 32k du MSX contenant le bios et le basic il peut avoir un autre nom suivant les schémas
aoineko
Membre non connecté
Conseiller Municipal
Ok, donc on est d'accord que :
1) Le signal /C12 n'est bien que « /C1 AND /C2 » ? Ca fait vraiment une économie de ne pas avoir ce AND directement sur la cartouche ? Ca ressemble à une économie de bout de chandelle, mais je ne me rend peut-être pas compte du cout des composants à l'époque.
2) Une cartouche 16 KB peut tout simplement ignorer les signaux /CSx et les bits d'adresse 14 et 15, et ainsi être accessible en miroir sur toutes les pages de l'espace mémoire ? Si c'est bien le cas, il me semble avoir lu que les anciennes cartouches (contrairement à leur émulation dans openMSX par ex.) n'utilisaient pas l'effet miroir, ce qui me semble étonnant vu qu'au final c'est moins cher de produire une cartouche supportant l'effet miroir.
3) Une cartouche "peut" ignorer le signal /SLTSL et interagir avec le bus de donnée (j'imagine que si elle écris sur le bus, cela va créer des soucis de compatibilité avec le slot qui lui a légalement le droit d'y accéder). Ceci dit, on pourrait imaginer une cartouche de debug qui ne fait que espionner l'état des signaux en lecture (pour un débugueur par ex.); est-ce bien faisable ?
4) Les concepteurs du MSX n'ont pas pensé aux cartouches 48 Ko ? En tout cas, il n'y a pas de raccourcit pour détecter qu'un signal est valide pour la cartouche et que pour cela il faut checker manuellement (avec des composants sur la cartouche) que les signaux d'adresses 14 AND 15 sont bien égale à 0 ? Edité par aoineko Le 19/02/2024 à 13h41
1) Le signal /C12 n'est bien que « /C1 AND /C2 » ? Ca fait vraiment une économie de ne pas avoir ce AND directement sur la cartouche ? Ca ressemble à une économie de bout de chandelle, mais je ne me rend peut-être pas compte du cout des composants à l'époque.
2) Une cartouche 16 KB peut tout simplement ignorer les signaux /CSx et les bits d'adresse 14 et 15, et ainsi être accessible en miroir sur toutes les pages de l'espace mémoire ? Si c'est bien le cas, il me semble avoir lu que les anciennes cartouches (contrairement à leur émulation dans openMSX par ex.) n'utilisaient pas l'effet miroir, ce qui me semble étonnant vu qu'au final c'est moins cher de produire une cartouche supportant l'effet miroir.
3) Une cartouche "peut" ignorer le signal /SLTSL et interagir avec le bus de donnée (j'imagine que si elle écris sur le bus, cela va créer des soucis de compatibilité avec le slot qui lui a légalement le droit d'y accéder). Ceci dit, on pourrait imaginer une cartouche de debug qui ne fait que espionner l'état des signaux en lecture (pour un débugueur par ex.); est-ce bien faisable ?
4) Les concepteurs du MSX n'ont pas pensé aux cartouches 48 Ko ? En tout cas, il n'y a pas de raccourcit pour détecter qu'un signal est valide pour la cartouche et que pour cela il faut checker manuellement (avec des composants sur la cartouche) que les signaux d'adresses 14 AND 15 sont bien égale à 0 ? Edité par aoineko Le 19/02/2024 à 13h41
On est toujours ignorant avant de savoir.
1) environ 2 francs en france en 1983 calcule par un millier de cartouches vendues
2) voir avec Nishi le concepteur du MSX
3) tu parle d'un analyseur de bus ? genre ceci : https://www.ebay.fr/itm/224309742049
4) la cartouche de 48k n'a jamais existé physiquement elle est apparue lors du MSXdev
2) voir avec Nishi le concepteur du MSX
3) tu parle d'un analyseur de bus ? genre ceci : https://www.ebay.fr/itm/224309742049
4) la cartouche de 48k n'a jamais existé physiquement elle est apparue lors du MSXdev
extrait post MRC :
Ces lignes sont principalement utilisées par des cartouches allant jusqu'à 32 Ko et elles existent pour réduire le coût des cartouches plus petites, car avec cela, vous n'avez pas besoin de vous soucier de la mise en miroir et pouvez vous assurer qu'une cartouche est dans la bonne page (c'est-à-dire : 8 000 pour un programme de base en cartouche, ou 4000 pour un programme ASM 16 Ko, ou 4000-BFFF pour un programme ASM 32 Ko. Comme l'idée générale était que la plupart des cartouches auraient besoin du BIOS à la page 0 et que la page 3 contient des variables système que quelqu'un ne devrait pas page en utilisant le BIOS dans la plupart des cas, cela avait beaucoup de sens, les puces TTL coûtent de l'argent et dans les années 80, plus qu'aujourd'hui.
aoineko
Membre non connecté
Conseiller Municipal
Merci, c'est beaucoup plus clair maintenant.
C'est pas toujours facile de penser avec les contraintes de l'époque.
Pour l'analyseur de bus, oui, je pensais à une cartouche qui lirait en continu le contenu du bus (même quand elle n'est pas sélectionnée) et qui stockerai les valeurs du bus pour le debug ou le profiling d'un programme. J'avais pas d'idée précise mais je trouvais sympa l'idée d'une cartouche qui fonctionne de façon autonome sans avoir besoin d'être sélectionné (en ignorant /STSL en gros).
Une autre cartouche autonome qui pourrait être sympa ça serait une carte son qui jouerait de la musique de façon totalement autonome et qui mettrait à jour le signal sonore à son propre rythme et sans besoin d'être sélectionné. Est-ce possible ? Si ça se trouve, les cartouches MP3 fonctionne déjà comme ça ? Edité par aoineko Le 20/02/2024 à 00h12
C'est pas toujours facile de penser avec les contraintes de l'époque.
Pour l'analyseur de bus, oui, je pensais à une cartouche qui lirait en continu le contenu du bus (même quand elle n'est pas sélectionnée) et qui stockerai les valeurs du bus pour le debug ou le profiling d'un programme. J'avais pas d'idée précise mais je trouvais sympa l'idée d'une cartouche qui fonctionne de façon autonome sans avoir besoin d'être sélectionné (en ignorant /STSL en gros).
Une autre cartouche autonome qui pourrait être sympa ça serait une carte son qui jouerait de la musique de façon totalement autonome et qui mettrait à jour le signal sonore à son propre rythme et sans besoin d'être sélectionné. Est-ce possible ? Si ça se trouve, les cartouches MP3 fonctionne déjà comme ça ? Edité par aoineko Le 20/02/2024 à 00h12
On est toujours ignorant avant de savoir.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie