L'école Description des SLOT MSX (pour les programmeurs)
igal
Membre non connecté
Conseiller Municipal
Moi qui me contente de tartiner du beurre et d'la confiture à s't'heure là
Tu nous offre de la gelée royale GDX. Tiroirs et commode, ça me parle. C'est très explicite, bravo
On va voir si j'ai bien compris :
1) Lorsque l'on possède un mapper interne de 4046Ko.
2) Sachant que chaque BANK peut contenir 256Ko (maxi).
3) Il y a 4 BANK par SLOT.
4) Il y à 4 SLOTs dans un MSX.
Les 16 TIROIRS du MSX sont tous utilisés
Donc à supposé que l'on veuille faire un petit programme en BASIC, qui par définition va utiliser la ROM BASIC du MSX.
On va donc la aussi utiliser un TIROIR qui a un potentiel maximum de 256Ko. (même si seulement 32Ko sont utilisés.
5) Cela veut dire qu'en réalité on ne pourra utiliser que (4096-256) => 3840Ko ?
Le programme devant être contenu dans la RAM, là encore, on utilise un TIROIR de 32 Ko (ou plus), qui à un potentiel de 256Ko et donc:
6) Il faut encore soustraire 256Ko au 3840Ko restants à l'étape 5?
Au final, un PROGRAMME de 32ko ( Tiroir de 32 mais potentiel de 256) utilisant le BASIC (Tiroir de 32 mais potentiel de 256), laisse un potentiel mémoire restant de [4096-256-256 => 3584Ko visible par le CPU.
C'est bien ça?
Tu nous offre de la gelée royale GDX. Tiroirs et commode, ça me parle. C'est très explicite, bravo
On va voir si j'ai bien compris :
1) Lorsque l'on possède un mapper interne de 4046Ko.
2) Sachant que chaque BANK peut contenir 256Ko (maxi).
3) Il y a 4 BANK par SLOT.
4) Il y à 4 SLOTs dans un MSX.
Les 16 TIROIRS du MSX sont tous utilisés
Donc à supposé que l'on veuille faire un petit programme en BASIC, qui par définition va utiliser la ROM BASIC du MSX.
On va donc la aussi utiliser un TIROIR qui a un potentiel maximum de 256Ko. (même si seulement 32Ko sont utilisés.
5) Cela veut dire qu'en réalité on ne pourra utiliser que (4096-256) => 3840Ko ?
Le programme devant être contenu dans la RAM, là encore, on utilise un TIROIR de 32 Ko (ou plus), qui à un potentiel de 256Ko et donc:
6) Il faut encore soustraire 256Ko au 3840Ko restants à l'étape 5?
Au final, un PROGRAMME de 32ko ( Tiroir de 32 mais potentiel de 256) utilisant le BASIC (Tiroir de 32 mais potentiel de 256), laisse un potentiel mémoire restant de [4096-256-256 => 3584Ko visible par le CPU.
C'est bien ça?
le CPU Z80 ne peut voir que 64K a la fois quelque soit le bank
les pages visibles font toutes 16K
le memory mapper permet de commuter les pages de mémoire dans les banks ,on peux placer la même page dans 2 banks
donc oublie tous tes calculs et reste simple
16k bios
16k basic
16k ram
16k ram
d'ou les 28k a l'init d'un MSX1 ( 32k - la place des variables systéme )
les pages visibles font toutes 16K
le memory mapper permet de commuter les pages de mémoire dans les banks ,on peux placer la même page dans 2 banks
donc oublie tous tes calculs et reste simple
16k bios
16k basic
16k ram
16k ram
d'ou les 28k a l'init d'un MSX1 ( 32k - la place des variables systéme )
Fabf
Membre non connecté
Conseiller Municipal
Il faut voir ça comme les placards industriels ou l'on ne peux ouvrir qu'un tiroir à la fois.
Tout le contenu est disponible mais pas en même temps
Après tu y mets ce que tu veux dedans même de la confiture
Tout le contenu est disponible mais pas en même temps
Après tu y mets ce que tu veux dedans même de la confiture
igal :
Moi qui me contente de tartiner du beurre et d'la confiture à s't'heure là
Tu nous offre de la gelée royale GDX. Tiroirs et commode, ça me parle. C'est très explicite, bravo
Tu nous offre de la gelée royale GDX. Tiroirs et commode, ça me parle. C'est très explicite, bravo
En fait, ça fait des mois que ça traine. J'ai écrit ça petit à petit tranquillement.
igal :
On va voir si j'ai bien compris :
1) Lorsque l'on possède un mapper interne de 4046Ko.
2) Sachant que chaque BANK peut contenir 256Ko (maxi).
3) Il y a 4 BANK par SLOT.
4) Il y à 4 SLOTs dans un MSX.
Les 16 TIROIRS du MSX sont tous utilisés
1) Lorsque l'on possède un mapper interne de 4046Ko.
2) Sachant que chaque BANK peut contenir 256Ko (maxi).
3) Il y a 4 BANK par SLOT.
4) Il y à 4 SLOTs dans un MSX.
Les 16 TIROIRS du MSX sont tous utilisés
Il ne peut y avoir qu'un Memory Mapper par Slot étendu ou pas. Un Memory Mapper, quelque soit sa taille, prend toute la place d'un Slot.
http://www.msxvillage.fr/forum/topic.php?id=1244
Il y a 4 SLOT primaires dans un MSX au maximum mais il peut y en avoir moins. 1 Slot primaire peut contenir 4 Slot secondaires au maximum mais il peut y en avoir moins.
igal :
Donc à supposé que l'on veuille faire un petit programme en BASIC, qui par définition va utiliser la ROM BASIC du MSX.
On va donc la aussi utiliser un TIROIR qui a un potentiel maximum de 256Ko. (même si seulement 32Ko sont utilisés.
5) Cela veut dire qu'en réalité on ne pourra utiliser que (4096-256) => 3840Ko ?
Le programme devant être contenu dans la RAM, là encore, on utilise un TIROIR de 32 Ko (ou plus), qui à un potentiel de 256Ko et donc:
6) Il faut encore soustraire 256Ko au 3840Ko restants à l'étape 5?
Au final, un PROGRAMME de 32ko ( Tiroir de 32 mais potentiel de 256) utilisant le BASIC (Tiroir de 32 mais potentiel de 256), laisse un potentiel mémoire restant de [4096-256-256 => 3584Ko visible par le CPU.
C'est bien ça?
Donc à supposé que l'on veuille faire un petit programme en BASIC, qui par définition va utiliser la ROM BASIC du MSX.
On va donc la aussi utiliser un TIROIR qui a un potentiel maximum de 256Ko. (même si seulement 32Ko sont utilisés.
5) Cela veut dire qu'en réalité on ne pourra utiliser que (4096-256) => 3840Ko ?
Le programme devant être contenu dans la RAM, là encore, on utilise un TIROIR de 32 Ko (ou plus), qui à un potentiel de 256Ko et donc:
6) Il faut encore soustraire 256Ko au 3840Ko restants à l'étape 5?
Au final, un PROGRAMME de 32ko ( Tiroir de 32 mais potentiel de 256) utilisant le BASIC (Tiroir de 32 mais potentiel de 256), laisse un potentiel mémoire restant de [4096-256-256 => 3584Ko visible par le CPU.
C'est bien ça?
Un programme en BASIC va utiliser le BIOS, la ROM BASIC et la RAM disponible dans les 2 autres Bank du MSX.
Le BASIC ne gère pas les Slot ni le(s) Memory Mapper. Donc soit tu devras mixer avec le langage machine pour utiliser le reste de mémoire, soit modifier le BASIC pour qu'il gère toute la RAM (je crois que ça a déjà été fait). Edité par GDX Le 03/06/2012 à 12h03
TurboSEB
Membre non connecté
Conseiller Municipal
tres interessant et instructif , des p'tits exemples en Basic avec des OUT seraient un plus (et tres interessant) pour les Beotiens comme moi pour exemple savoir ''lire'' , si l'on a un mapper , une Fmpac , ou autres .... dans un slot !!
du genre , par exemple , si mapper > 256Ko = creation d'un RamDisc pour stockage sinon utilisation du lecteur Edité par TurboSEB Le 03/06/2012 à 14h37
du genre , par exemple , si mapper > 256Ko = creation d'un RamDisc pour stockage sinon utilisation du lecteur Edité par TurboSEB Le 03/06/2012 à 14h37
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
TurboSEB :
tres interessant et instructif , des p'tits exemples en Basic avec des OUT seraient un plus (et tres interessant) pour les Beotiens comme moi pour exemple savoir ''lire'' , si l'on a un mapper , une Fmpac , ou autres .... dans un slot !!
du genre , par exemple , si mapper > 256Ko = creation d'un RamDisc pour stockage sinon utilisation du lecteur
du genre , par exemple , si mapper > 256Ko = creation d'un RamDisc pour stockage sinon utilisation du lecteur
Le Basic est l'environnement dans lequel c'est le plus difficile de manipuler les Slot ou un Memory mapper car le programme Basic et ses variables sont à cheval sur le Bank 2 et 3. La ROM du Basic est sans cesse appelée lors de l'interprétation et le Bios contient la routine des interruptions entre autres. Le moindre changement de Slot ou de page retire une partie nécessaire au bon fonctionnement. Il faut donc bidouiller mais ça sort un peu du but de ce post.
Pour détecter une ROM précise il faut rechercher dans les Slot le signe de reconnaissance qui est spécifique. Dans le cas de l'FM-PAC, en Basic, on peut exécuter une instruction spécifique au MSX-Music dans une ligne précise et utiliser ON ERROR GOTO.
Pour le RAM-Disk, il faut créer une routine en machine placée dans le bank 3 (donc limiter la taille du programme basic) qui effectuera les tâches suivantes :
1/ couper les interruptions.
2/ Sélectionner la page 255 du Memory Mapper dans le bank 2. (OUT 0FEh,A)
3/ Lire un octet du bank 2, par exemple 8000h et sauvegarder la valeur.
4/ Ecrire le numéro de page sélectionné à 8000h.
5/ Sélectionner la page inférieure du Mapper dans le bank 2.
6/ Si le numéro de page est différent de 0 alors retourner au 3/.
7/ Lire les octets 8000h de chaque page de mapper. Sauvegarder la valeur la plus grande. Elle indiquera le nombre de page du Mapper.
8/ Remettre les valeurs sauvegardées en 3/ à 8000h de chaque page respective.
9 / Rétablir les interruptions et revenir au basic.
10 / Tester la valeur sauvegardée en 7/.
PS : J'ai modifié la description du Memory Mapper. J'ai ajouté le cas du MSX1 avec un schéma d'explication. Edité par GDX Le 18/06/2012 à 03h01
Y en a qui vont rigoler en lisant cela (je pense notamment à Z80 et Jipe) :
Ca fait 25 ans que je n'ai toujours pas compris ces histoires de slots !
Et pourtant ça a l'air "simple" !
J'offre mon GT à quiconque pourra me faire assimiler tout ça !
(indice pour vous chez vous en bas de l'écran : j'ai 47 piges et... vous croyez encore au Père Noêl ?!!)
Ca fait 25 ans que je n'ai toujours pas compris ces histoires de slots !
Et pourtant ça a l'air "simple" !
J'offre mon GT à quiconque pourra me faire assimiler tout ça !
(indice pour vous chez vous en bas de l'écran : j'ai 47 piges et... vous croyez encore au Père Noêl ?!!)
MSX Turbo-R FS A1GT - 1 Mo de RAM - Disque dur SCSI Syquest cartouches de 270 Mo - Lecteur CD. Musique, musique, musique et encore musique !
TurboSEB
Membre non connecté
Conseiller Municipal
Moi je trouve l'explication de GDX très bien imagé:
Gdx:
Pour résumé le fonctionnement :
De façon imagée, on peut comparer un slot à une commode avec 4 tiroirs superposés (4 Bank). Il y a 4 commodes. Le CPU ne peut ouvrir que 4 tiroirs en même temps et un seul par niveau (Bank).
Les Slot secondaires sont des boites placées dans les tiroirs. Il y en a 4 par tiroir. Le CPU ne peut ouvrir qu'une boite par tiroir.
Une commode possèdent des tiroirs (Slot primaires) avec des boites (Slot secondaires) contenant de la RAM ou de la ROM mais ça peut être aussi un dispositif quelconque à la place (un Memory Mapper, une puce SCC, un mapper de cartouche, etc).
-----------
Perso j'aurais comparer à 4 immeubles de 4 étages avec par étage un appartement de 4 pièces
C'est vraiment très bien expliqué, Merci GDX
Gdx:
Pour résumé le fonctionnement :
De façon imagée, on peut comparer un slot à une commode avec 4 tiroirs superposés (4 Bank). Il y a 4 commodes. Le CPU ne peut ouvrir que 4 tiroirs en même temps et un seul par niveau (Bank).
Les Slot secondaires sont des boites placées dans les tiroirs. Il y en a 4 par tiroir. Le CPU ne peut ouvrir qu'une boite par tiroir.
Une commode possèdent des tiroirs (Slot primaires) avec des boites (Slot secondaires) contenant de la RAM ou de la ROM mais ça peut être aussi un dispositif quelconque à la place (un Memory Mapper, une puce SCC, un mapper de cartouche, etc).
-----------
Perso j'aurais comparer à 4 immeubles de 4 étages avec par étage un appartement de 4 pièces
C'est vraiment très bien expliqué, Merci GDX
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie