Connexion de la RAM supplémentaire sur spectrum avec 128Ko de RAM.

Avant de voir comment connecter la RAM supplémentaire et faire du page flipping, nommons les banks de cette ram.

Une bank est un bloc de 16Ko. Les 128Ko de RAM sont donc divisés en 8 blocs de 16Ko.

128Ko Bank names

La RAM des ZX Spectrum 128K / +2 se présente de la façon suivante:

128K RAM map

Ce qu'il faut comprendre c'est que toute bank se connecte entre #C000 / #FFFF.
Vous n'aurez pas d'autre possibilité d'adresse.

Pour sélectionner la bank connectée, nous utiliseront le port #7FFD.
Ce port est en écriture seule, vous ne pourrez donc pas lire quelle bank est connectée.

Pour choisir la bank connectée en #C000, il faudra utiliser les bits 0 à 2.
Ces 3 bits vous permettent de choisir une des 8 banks.

Mais attention, les autres bits ont aussi une signification. Pas question de les écraser bêtement.

Le bit 3 permet de choisir quel écran sera affiché. Cependant avec un seul bit, vous vous doutez bien qu'il n'y a que deux possibilités.

Si le bit 3 est à 0 alors l'écran normal sera la Bank 5.
Si le bit 3 est à 1 alors l'écran sera la Bank 7 qui est aussi appelé "Shadow screen".

Notez que cela ne change strictement rien à la RAM. Vous pourrez connecter le shadow screen sans avoir connecté sa bank en #C000. De même, en connectant le shadow screen, cela ne change rien au contenu de #4000 qui reste la bank 5(ecran standard).
Pour résumer, ce bit 3 ne fait que dire à ULA ou aller lire l'écran.

Si vous ne vous servez pas de la bank 2 comme écran, vous pouvez très bien l'utiliser simmplement comme RAM. C'est tout de même 16Ko...

Le bit 4 sert à selectionner la ROM.
0 connecte la rom pour 128Ko et par conséquent son basic et le menu de démarrage.
1 connecte le basic 48Ko. D'ailleurs vous l'aurez remarqué, quand vous choisissez le basic 48k via le menu de démarrage, votre spectrum reset... Simplement parcequ'il vient de connecter la ROM et de sauter dedans.

Le bit 5 si mis à 1 annule toute opération sur le port. La configuration de la ram redevient celle d'origine et vous ne pourrz plus rien envoyer sur le port jusqu'au prochain reset. Autant dire que cela ne sert pas à grand chose sinon à vous mettre des batons dans les roues.
Par ailleurs ce bit est mis à 1 quand vous selectionnez le basic 48Ko !!! Raison pour laquelle si vous tentez de changer de bank ou de faire du flipping dans ce mode, cela ne fonctionnera pas !!!

Les bits 6 et 7 sont inutilisés.

Voici un résumé de ces bits:

port #7FFD

Petit exemple pour afficher le shadow screen:

                    org     24576
                    DI
                    LD 	    A,%00001000         ;bits 0,1,2 => bank 0 en #C000
                                                ;bit 3 = 1 => Shadow screen
                boucle
                    LD 	    BC,&7FFD
                    OUT	    (C),A               ;envoi de la valeur sur le port
                    XOR     %00001000           ;on inversera le bit
                    JP	    boucle

N'oubliez pas que le system risque de vous déranger. Le mieux est donc de passer en IM 2 pour l'éliminer définitivement.

A propos des ROMs

Le spectrum dispose via l'interface 2 d'un port cartouche. Bien que très peu de jeux aient été distribués sur ce support, cela reste une possibilité de connexion.

Le port cartouche se présente comme suit:

port extension cartouche sur interface 2

Á la connexion d'une cartouche, le port /ROMCS est mis en haute impédance ce qui désactive la rom interne.
La ROM externe est donc connectée par la mise en +5V de ses broches .PGM et VPP ainsi qu'un signal bas sur /MREQ, A14 et A15.

Dans les faits vous n'avez donc rien à faire pour connecter ces roms puisque cela se fait automatiquement. En revanche ce qui est dommage, c'est bien de ne pas pouvoir sélectionner différentes roms.

X

CONNEXION




Inscription