[MZ-700] Mais comment fonctionne ce mod qui donne accès à 64KO de ROM !?

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [MZ-700] Mais comment fonctionne ce mod qui donne accès à 64KO de ROM !?

Message par hlide »

Bon je reviens un peu là-dessus parce que j'étais en train de constituer des commandes de composants à Mouser et en regardant les 74xx, j'ai une idée un peu folle.

Mais avant, je voudrais revenir sur une instruction IN A, (n) (applicable avec IN A,(C) aussi) :

L'adresse du port I/O via cette instruction est : AD[15..8] = A et AD[7..0] = n. Avec l'instruction IN A,(C), ce serait : IOAD[15..8] = B et IOAD[7..0] = C. Vous voyez où je veux en venir ?

Voici le schéma correspondant à la prise en compte des port I/O $FE et $FF :
Port(EF-FF).png
Port(EF-FF).png (354.53 Kio) Consulté 1042 fois
Vous noterez que le composant IC-5J (en bleu ciel) ne gère que :
- le port $FE en entrée et en sortie (/R0 et /W0).
- le port $FF en sortie seulement (/W1).

Il ne gère pas le cas IN A,($FF) (/R1).

Maintenant si je décide de capturer le signal sur le composant IC-5J qui décrirait /R1 de façon à l'envoyer sur un 74LS273 par exemple pour capturer le bus d'adresse AD[11..8] (présent via le socle de la ROM) et faire que les sorties de ce composant soient connectées aux entrées A15..A12 de la nouvelle ROM (64 Ko au lieu de 4 Ko), j'obtiens mon sélecteur de page PERMANENT. La broche CK se connectera au signal /R1 du IC-5J et la broche CL au /RESET - récupérable depuis IC-4H (vert) ou IC-4J (violet).

Du coup, pour copier une page, je fais :

Code : Tout sélectionner

    LD      A,page_number
    IN      A,($FF) ; sélectionne la page <page_number>
    
    LD      HL, 0 ; premier octet de la page
    LD      DE, <adresse DRAM> ; adresse en RAM pour le premier octet à copier
    LD      BC, 4096 ; une page fait 4 Ko
    LDIR ; on copie la page en DRAM !
Pas d'interférence avec l'imprimante puis que logiquement le schéma d'origine semble ignorer la possibilité de lire via ce port et donc l'adresse $0000-$0FFF peut pointer à n'importe quelle page tant qu'un /RESET ou un IN A,($FF) ne sera pas effectué.

J'ai bon jusque-là ? si oui, j'aurais donc besoin d'un 74LS273 et d'une ROM de 64 Ko sur un circuit qui s'enfiche sur le socle de la ROM d'origine. J'aurais quand même besoin de capturer le /RESET et /R1 sur IC-5J par exemple.

A noter que si je veux étendre la capacité de la ROM au maximum (4 Ko x 256 = 1 Mo), il me faudra capturer les lignes d'adresses A15, A14, A13 et A12 quelque part pour les injecter dans le 74LS273 qui se connectera respectivement aux lignes A19, A18, A17 et A16 de la ROM étendue.

Vous en pensez quoi ? jouable ou il y a une faille dans l'idée ?
Xavier_AL

Re: [MZ-700] Mais comment fonctionne ce mod qui donne accès à 64KO de ROM !?

Message par Xavier_AL »

Salut hlide,

Oui, c'est matériellement possible, mais il te faudra gérer les blocs 4k à l'aide du menu sur les 4K de boot.
Ca ne posse pas de problème en soit, mais je ne sais pas si une fois en RAM, le patch peut réagir de la même façon.
Mais, pour le "feed" mémoire de ROM en RAM, ça peut fonctionner avec une sorte de "bank switching" comme un ramdisk.
La gestion des blocs ne sera pas simple, mais c'est faisable.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [MZ-700] Mais comment fonctionne ce mod qui donne accès à 64KO de ROM !?

Message par hlide »

J'ai commandé des ROM de type SST39SFxxx , une nvRAM de 256 Ko que je comptais utiliser dans un premier temps pour mettre au point les programmes, la gestion des fichiers (peut-être un FAT6 simplifié), etc. Et quelques composants 74LSxxx pour pouvoir faire aussi bien le mod d'origine que celui que j'ai en idée. J'ai complètement oublié de prendre les socles de profil bas adaptés aux ROM :(. Il y a quand même 20 € de frais de livraison si la commande est en-dessous de 50 €. Et idéalement, je souhaiterais garder la rom d'origine à côté avec un interrupteur qui permet de passer entre les deux ROM. Encore un autre oubli.
Répondre