Si vous voulez simplement mettre des trucs à l'écran et pensez que vous pourriez vraiment, vraiment apprécier le câblage, vous pouvez viser un système graphique de caractères au début des années 1980. Si vous pouvez atteindre le timing du RS-170A, vous pourriez même être en mesure de pousser le signal dans une entrée AV de rechange sur un téléviseur plasma de 50 pouces, et de faire du rétro de façon spectaculaire.
Certains des premiers systèmes utilisaient leurs processeurs 8 bits pour générer directement l'affichage, par exemple le 6507 dans l'Atari 2600 et le Z-80 dans le Timex Sinclair ZX-81. Vous pouvez même faire la même chose avec des microcontrôleurs modernes. L'avantage de cette façon est que le matériel est simple, mais le logiciel doit généralement être en assembleur, et est très exigeant, et les résultats seront vraiment décevants. On peut dire que le 2600 employait du matériel supplémentaire, mais le TIA n'avait pas beaucoup de FIFO, et le 6502 (enfin, 6507, vraiment) devait lui envoyer des octets en temps réel. Dans cette approche, il n'y a pas de mode vidéo standard; chaque application qui utilise la vidéo doit être intimement combinée avec les besoins de maintien de la fluidité des pixels.
Si vous voulez vraiment construire quelque chose à partir de TTL, le prochain niveau de complexité serait d'opter pour l'affichage de texte basé sur la ROM de caractères. Cela vous permet de mettre, disons, 256 caractères dans n'importe laquelle, par exemple 40 colonnes et 25 positions de ligne. Il y a plusieurs façons de procéder.
Une façon - faites ce que j'ai fait le modèle TRS80. Un groupe de 74161 compteurs avec un assortiment de portes a généré l'adresse vidéo; trois 74157 multiplexés sur 12 bits de l'adresse CPU avec l'adresse vidéo, pour envoyer une adresse à une RAM statique 2K. Les données de la RAM ont été mises en mémoire tampon dans le CPU, mais alimentées sans tampon en tant qu'adresse de la ROM du jeu de caractères. Il n'y a pas eu d'arbitrage en bus; si le processeur voulait de la RAM vidéo, le système vidéo a été mis en marche, ce qui a entraîné l'effet «neige». L'adresse vidéo multiplexée a été combinée avec quelques lignes de la section compteur pour compléter les adresses basses; la sortie de la ROM de caractères a été transférée dans un registre à décalage 74166. Le tout s'est échappé des divisions d'un cristal de 14,31818 MHz. Dans cette approche, vous auriez exactement un mode vidéo complètement implémenté dans le matériel, comme 40x25 ou 64x16, etc.,
Une autre façon - déterrer une soi-disant puce CRTC comme une 6845. Celles-ci combinaient la plupart de la logique de compteur et de colle, et fournissaient au processeur une interface de registre de contrôle afin que vous puissiez reprogrammer une partie de la synchronisation. Des systèmes comme celui-ci pourraient être rendus quelque peu plus flexibles, par exemple, vous pourriez obtenir 40x25 et 80x25 avec le même matériel, sous le contrôle du registre. Si vous maîtrisez les fréquences d'horloge, vous pourrez peut-être laisser votre processeur avoir un accès gratuit à la RAM vidéo pendant une moitié de l'horloge et l'accès au générateur d'adresses vidéo pendant l'autre moitié de l'horloge, évitant ainsi la nécessité d'un arbitrage de bus et éliminer l'effet neige.
Si vous voulez opter pour de véritables modes graphiques, vous constaterez rapidement que rouler votre propre est problématique. L'Apple 2 d'origine le gérait, mais ce système contenait quelque chose comme 110 puces TTL MSI, et même ainsi, il y avait des choses amusantes à gérer, comme un mappage non linéaire du tampon vidéo sur l'écran et des palettes de couleurs extrêmement limitées , pour n'en nommer que deux. Et Woz est généralement reconnu comme ayant eu un indice. Au moment où le «2e» est arrivé, Apple mettait déjà le système vidéo dans une puce personnalisée. Le C-64, sorti à peu près au même moment, devait ses capacités graphiques à des puces personnalisées.
Alors .. je dirais qu'il y a deux façons de le faire. Unidirectionnel - sortez votre seau de vieux TTL et aspirez à un affichage de texte monochrome 80x25; dans l'autre sens - procurez-vous une bonne carte d'évaluation FPGA, faites le tout en VHDL et commencez avec un affichage de texte 80x25.