Je profite de ces moments de confinement hélas sans mon matériel pour faire un peu de théorie et consacrer du temps à des notions sur lesquelles j'aimerai monter en compétences.
J'avais un petit projet pratique qui me trottait en tête depuis quelques temps, projet impliquant de manipuler des notions de décodage d'adresse et d'étude de "memory-maps", j'ai donc décidé de m'y plonger plus sérieusement.
Il y a quelque temps j'avais récupéré de grosses quantités d'uvproms 2716 et un programmateur. Mais quoi faire avec ? 2 ko c'est vraiment pas grand chose... J'avais des cartouches de VCS2600 qui trainaient par là, et je savais que leur capacité native était de 4 ko. Je me suis donc dit pourquoi ne pas tenter de concevoir un circuit associant deux mémoires 2716 pour obtenir un total de 4 ko ? Ok ça semble lourd pour une simple cartouche de 4 ko mais c'est l'occasion de réfléchir un peu...
Je me suis donc lancé en fonction de mes connaissances actuelles... J'enfonce surement des portes ouvertes mais j'espère que ma méthode et mes conclusions sont justes !
Je commence donc par la memory map de la machine :
Code : Tout sélectionner
registres TIA $0000 à $007F
RAM $0080 à $00FF
registres RIOT $0200 à $02FF
ROM $1000 à $1FFF
Code : Tout sélectionner
registres TIA 0 à 127
RAM 128 à 255
registres RIOT 512 à 767
ROM 4096 à 8191
Bref, je calcule le milieu de la zone mémoire pour la couper en deux, j'en déduit que la première moitié se situe entre 4096 et 6143 (décimal) soit $1000 à $17FF et la seconde entre 6144 à 8191, soit $1800 à $1FFF
Je passe en binaire histoire d'avoir quelque chose de plus "visuel" :
J'observe que le µP accède à la cartouche si et seulement si A12=1. Ce signal peut donc être utilisé comme signal de "chip select" (via une porte inverseurse bien sûr) pour les chips de mémoire de la cartouche, observation confirmée par une recherche en ligne.
Pour différentier mes deux parties de ROM, je peux manifestement utiliser A11 :
A11=0 -> première moitié
A11=1 -> seconde moitié
J'en déduit ce petit tableau, avec !CE1 le chip select de ma 1ere moitié et !CE2 la 2ème :
Sachant ceci, je peux tenter de faire un peu de logique. J'aimerai utiliser des portes NAND pour construire mes deux "!chip select".
J'ai des souvenirs (trop) vagues du lycée où il fallait écrire de longues équations puis les simplifier avec divers formules (je me souviens de "DeMorgan").
J'ai préféré cogiter pour sortir ceci :
Que je vais tenter de simuler avant d'aller plus loin... (et surtout avant d'avoir vos avis !)
Bon encore une fois désolé si je répète des notions de bases (que j'espère justes ) ou des trucs évidents mais ce projet est une vraie occasion de me plonger dans ces notions de décodage qui m'ont parfois posé problème.
Que pensez-vous de mes observations/conclusions
Merci pour votre retour !