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...

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...

Bon encore une fois désolé si je répète des notions de bases (que j'espère justes

Que pensez-vous de mes observations/conclusions

Merci pour votre retour !