MSX Village forum

L'atelier Le MSX et les signaux CS

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 27/04/2021 à 10h09
En cherchant dans les ruelles du village, j'ai retrouvé ça:

Jipe :
le slot select doit arriver sur /OE et /CE

rappel sur les plages mémoires
/CS1 = 4000 7FFF jeu 16K
/CS2 = 8000 BFFF jeu 16K
/CS12 = 4000 BFFF jeu 32K
/SLTSL = 0000 FFFF jeu 64K


@Jipe: Quel est l'intérêt d'avoir deux signaux différents /CS1 et /CS2 qui s'adresseraient à une même plage (quantité?) de données?
Est ce que CS1 "met en mirroir" 16Ko quelconques dans la RAM [obligatoirement En &h000 jusqu'à &h3FFF] et CS2 "met en mirroir" 16Ko quelconques dans la RAM [obligatoirement En &h4000 jusqu'à &h7FFF]?

Faut il comprendre que le [BUS MSX A0 jusque A15] permet à l'utilisateur d'indiquer à la machine ou aller chercher les "[Blocs de données de 16Ko /CS1 ou CS2] et que dans le même temps, CS1 ou CS2 indique de facto que ces données seront placée en miroir dans la RAM du MSX soit en &h0000 si c'est cablé CS1 ou encore &h4000 si c'est cablé CS2?

Juste en dessous, la cartographie de FS-A1 extraite depuis Msx.org :) :


Santé :tchin Edité par igal Le 27/04/2021 à 10h40


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: 10731

Le 27/04/2021 à 11h42
/CS1 /CS2 /CS12 ça permet surtout de faire des cartouches 16 et 32k simples qui n'embarquent pas le décodage d'adresses donc a moindre coût

/CS1 c'est pour les roms 16k dont la plage mémoire va de 4000h à 7FFFH

/CS2 c'est pour les roms 16k dont la plage mémoire va de 8000h à BFFFH

donc oui c'est la même taille mais pas le même emplacement !!

/CS12 c'est pour les roms 32k dont la plage mémoire va de 4000h a BFFFh



:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/04/2021 à 13h53
voila je vais développer en images le fonctionnement a partir du schéma du CANON V20

les Bits d'adresses A14 et A15 servent a décoder les adresses a l'aide du 74LS139

comme il y a le signal /RD qui est pris en compte dans le montage seul des composants a lecture seule sont autorisés

plage mémoire de 0000h à 3FFFh seule la ROM est sélectionnée




plage mémoire de 4000h à 7FFFh le /CS1, le /CS12 et la ROM sont sélectionnés




plage mémoire de 8000h à BFFFh le /CS2 et le /CS12 sont sélectionnés




plage mémoire de C000h à FFFFh aucune ROM n'est sélectionnée







:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/04/2021 à 14h24
j'ai scindé le post pour éviter la pollution du post original

@igal: le MSX ne copie pas les zones de ROM dans sa RAM mais travaille directement dans la ROM

la zone C000h à FFFFh est réservèe pour la RAM

il y a aussi :

- une Zone Variables Systèmes qui contient plein de données sur l'état du MSX qui commence en F380h

- une zone mémoire Hook ( crochets qui permet de détourner certaines fonctions ) qui commence en FD9Ah

sur les MSX avec des slots étendus l'adresse FFFFh est reservèe ( le fameux poke -1 )


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 27/04/2021 à 16h05
Ok... (Je te remercie, c'est clair pour CS1, CS2 et CS12 :top )

Pourquoi la RAM seulement de &HC000 à &HFFFF auxquels on doit en plus soustraire encore de la place allant de &HF380 jusqu'à probablement &hFFFF?

Pourquoi ne peut on pas utiliser la RAM depuis &H0000 à &HBFFF pour y stocker du programme BASIC? Edité par igal Le 27/04/2021 à 16h10


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5886

Le 27/04/2021 à 16h48
Je sais que le Z80 peut adresser 64ko de mémoire ROM et RAM confondues en même temps :)
Après on peu commuté les plages RAM au besoins
C'est pour ça qui il y a moins de RAM disponible sur un MSX2 (23/24ko) par rapport a un MSX1 car il y a des adressages ROM en plus pour le drive par exemple :tea Edité par TurboSEB Le 27/04/2021 à 16h50



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/04/2021 à 17h47
La RAM dépend de la conception du MSX

il y a eu des MSX avec 8k 16k 32k et 64k de RAM

en fait la zone adressée pour la RAM s'étend bien de 0000h a FFFFh pour un MSX 64K

mais on a que 28k de RAM disponible sous BASIC pour un MSX1 car les 32 premiers K sont réservés pour la ROM

en effet les commandes Basic étant en ROM il faut avoir accès a la ROM et a la RAM en même temps

pourquoi 28k ? car il faut déduire la zone réservée au fonctionnement du systéme

les 32 premiers K de la RAM ne sont accessibles qu'en langage machine ( assembleur )

donc pour résumer dans un :

MSX 8K la RAM commencera à E000h ex : Casio PV7 4239 Bytes free

MSX 16K la RAM commencera à C000h ex : Casio PV16 12431 Bytes free

MSX 32K la RAM commencera à 8000h ex : Yamaha CX5 28815 Bytes free

MSX 64K la RAM commencera à 0000h ex : Canon V20 28815 Bytes free


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/04/2021 à 18h00
Aprés si on insère une extension Lecteur de Disquette le système réserve un emplacement de travail pour chaque drive connecté

par défaut il voit 2 drives connectés A: et B:

c'est pour cela que la touche CTRL permet de libérer un peu d'espace mémoire car le drive B: n'est plus reconnu ;)

Avec 32k de RAM on accès au commandes du DISK BASIC genre :

FILES pour voir les fichiers
COPY "A:FICHIER" TO "B:" pour copier un fichier de A: vers B:
RUN "JEU.BAS" pour lancer un jeu
ETC...

pour charger le MSXDOS et ses commandes il faut au moins 64k de RAM

le MSXDOS se charge a partir d'une disquette et du coup les commandes sont différentes

DIR pour voir les fichiers
COPY A:FICHIER B: pour copier un fichier de A: vers B:
pour lancer un programme il faut qu'il soit en .COM
pour lancer JEU.COM on tape simplement JEU et return





:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 27/04/2021 à 19h02
Merci TurboSeb :top

@Jipe: Faut il comprendre que:

Puisque l'on sollicite le "BASIC ROM 32Ko" et que ce dernier doit prendre place en "&H0000 jusqu'à &H7FFF", les mêmes adresses "&H0000 jusqu'à &H7FFF" ne peuvent être utilisées sans quoi, il y aurait confusion entre le contenu du "Programme Basic" et le contenu du "BASIC ROM 32Ko" malgré que "Programme Basic" et "Basic Rom" se trouve sur des Slots différents!

C'est quand même très con d'être limité à ce point!

La solution d'un "mapper" interne au MSX spécialement pour pouvoir utiliser les 64Ko sans que le "Basic Rom" empiète sur les mêmes adresses du "programme Basic" aurait pu être possible ou alors j'suis encore à coté de la plaque :fou


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: 10731

Le 27/04/2021 à 19h52
toutes les commandes du MSX Basic sont stockées dans la ROM mais c'est un BASIC INTERPRETE



j'ai trouvé des infos ici : https://en.wikipedia.org/wiki/MSX_BASIC

MSX BASIC est fourni avec la ROM de tous les ordinateurs MSX. Au démarrage du système, MSX BASIC est appelé, provoquant l'affichage de son invite de commande, à moins qu'un autre logiciel placé dans la ROM ne prenne le contrôle (ce qui est le cas typique des cartouches de jeu et des interfaces de disque, cette dernière provoquant l' affichage de l' invite MSX-DOS s'il existe un disque contenant les fichiers système DOS).

Lorsque MSX BASIC est appelé, le code ROM pour le BIOS et l' interpréteur BASIC lui-même sont visibles sur les 32 Ko inférieurs de l'espace d'adressage Z80. Les 32 Ko supérieurs sont définis sur RAM, dont environ 23 Ko à 28 Ko sont disponibles pour le code BASIC et les données (la quantité exacte dépend de la présence du contrôleur de disque et de la version du noyau MSX-DOS).



:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 27/04/2021 à 21h17
igal :
C'est quand même très con d'être limité à ce point!

La solution d'un "mapper" interne au MSX spécialement pour pouvoir utiliser les 64Ko sans que le "Basic Rom" empiète sur les mêmes adresses du "programme Basic" aurait pu être possible ou alors j'suis encore à coté de la plaque :fou


Après, c'est une limite qui ne concerne que le Basic (donc des utilisations plus "loisir").
Les cartouches, par exemple, ont beaucoup plus de souplesses.
On peut accéder assez facilement à quasiment tout les 64 KB de RAM (avec plus ou moins de switch de slot sur les pages et plus ou moins de contrainte si on utilise le Bios).


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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 28/04/2021 à 12h31
Merci pour ce sujet super intéressant,
Est-ce que les Mega Rom utilisent aussi le CS ?


Il faut cultiver notre jardin.
   
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 28/04/2021 à 12h54
J'ai réalisé quelques cartouches en utilisant un circuit imprimé que j'ai trouvé sur easyeda
Et sur cette carte on retrouve le sélecteur CS1 CS2 et CS12. Mais aussi RD, qui relie ou non CS à RD. A15 qui relie le A15 de la rom soit au + ou au - (soit au A15 du slot) et idem avec le A14 mais avec en plus la possibilité de relier A14 de la rom au A15 du slot.
Je n'ai pas bien compris comment fonctionne ce A14 A15, est ce que ça permet d'utiliser une Rom supérieure à 64ko?


Il faut cultiver notre jardin.
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 28/04/2021 à 13h38
les megaroms n'utilisent pas les /cs1 /cs2 /cs12 mais juste le signal slot select

c'est un chip spécial qui gére le mapper des cartouches

2212P003 pour les SCC

LZ93A13 ou M60002 pour les ASCII

schémas ici pour les SCC et le LZ93A13 : http://elec-junker-p2.blog.jp/

64Ko c'est le maximum d'une cartouche sans mapper 2 ^ 16 = 65536

comment tu charge le circuit complet sur easydata car avec l'outil de visualisation je ne vois pas toutes les pistes pour t'en dire plus ?


:noel
Site web    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 28/04/2021 à 21h25
@Jipe si tu scrolles en bas sous la dernière image tu as un bouton 'Open in editor' (il faudra que tu crées un compte je pense)
Mais si tu veux j'ai déjà analysé le circuit et j'ai fait le schéma ci dessous:


Il faut cultiver notre jardin.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie