La section vidéo de l'Apple 1 est la partie la plus complexe de la machine. Les composants utilisés pour la section vidéo de l'Apple 1 original étant devenus rarissimes, et chers, j'ai cherché a refaire cette section vidéo avec des composants équivalents mais je n'ai pas réussi. La solution que j'ai trouvé, c'est d'utiliser le contrôleur vidéo MC6845 sorti en 1977 pour faire une nouvelle carte vidéo, plus évolutive mais pouvant afficher exactement comme l'Apple 1 original le faisait (à une exception prêt : la forme du curseur). Avec le MC6845 on peut afficher tout ce qu'on veut sur un écran à tube cathodique si on sait le paramétrer, c'est ce circuit qui crée tout les signaux de synchronisations nécessaires pour l'affichage. Je voulais utiliser ce circuit depuis la construction de mon premier ordinateur (en 2000) car il n'a que des avantages : pas cher, toujours disponible à la vente et il est programmable, c'est à dire que je peux afficher 24 lignes de 40 caractères si je le veux. Autre avantages importants, il peut faire du graphisme, de la couleur et peux gérer un stylo optique, toutes ces fonctionnalités supplémentaires seront très utiles pour faire évoluer la machine. Premiers essais vidéos concluants en Septembre 2010 : |
La carte vidéo de mon prototype réalisée en wrapping : |
Le circuit CRTC MC6845 est un circuit intégré LSI (Large Scale Intégration = grand taux d'intégration) générant les signaux nécessaires à la production d'une image vdéo.
A partir d'un signal d'horloge unique, il produit tous les signaux nécessaires pour le moniteur, tout les paramètres nécessaires sont programmables. Voici les principales possibilités de ce circuit : |
Horizontal total character number | Nb de caractères total en horizontal 0-255 | ||||
displayed character number | Nb de caractères affichés en horizontal 0-255 | ||||
Position of horizontal sync. pulse | Position de la synchronisation horizontale 0-255 | ||||
Width of horizontal/vertical sync. pulses | Longueur de la synchronisation 0-15 | ||||
Vertical total Line character number | Nb total de lignes en vertical 0-127 | ||||
Vertical raster adjust | Synchronisation verticale 0-127 | ||||
Vertical displayed character number | Nb de lignes réelles affichées 0-127 | ||||
Position of vertical sync. pulse | Position de la synchronisation verticale 0-127 | ||||
Interlaced mode | Mode entrelacé 0-3 |   | |||
Maximum raster | Nb de lignes par caractère 0-31 | ||||
Cursor start raster | Position et forme du curseur 0-31 |   | |||
Cursor end | Ligne de fin de curseur 0-31 |   | |||
Display Start Address (High) | Adresse haute début RAM écran 0-63 |   | |||
Display Start Address (Low) | Adresse basse début RAM écran 0-255 |   | |||
Cursor Address (High) | Adresse haute de la position du curseur 0-63 |   | |||
Cursor Address (Low) | Adresse basse de la position du curseur 0-255 |   | |||
Light Pen Address (High) | Adresse haute de la position du stylo-optique 0-63 |   |    |   | |
Light Pen Address (Low) | Adresse basse de la position du stylo-optique 0-255 |   |    |   |
A l'aide de la datasheet du générateur de caractère 2513 qui était dans l'Apple 1, j'ai reconstitué mon propre générateur de caractère avec une EPROM 2716, il affichera exactement les même caractères que l'Apple 1 au pixel prêt. |
Le schéma de ma carte vidéo est dessiné sur ces 5 pages (à redessiner au propre plus tard) : |
Pour faire ma carte vidéo je me suis basé principalement sur un article d'Elektor de 1983 : |