intro
intro
processor section
processor section
keyboard
keyboard

software
software
datasheets
datasheets
practice
practice




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

Les ordinateurs CPC Amstrad (464, 664, 6128) sortis dans les années 80 utilisent ce circuit MC6845 pour l'affichage vidéo :



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 :
- curseur programmable (hauteur et clignotement)
- fonctions du contrôle du curseur
- matrice de points des caractères programmable
- nombre de caractères par ligne programmable
- nombre de lignes par écran programmable
- accès à une zone de 16 ko
- entrée stylo-optique

Ce circuit comporte dix-neuf registres internes dont un, le registre adresse, est utilisé pour sélectionner celui sur lequel on désire travailler. Les dix-huit autres registres sont appelés registres de paramètres. L'accès à un registre se fait en deux temps :

- Il faut d'abord fournir, au registre adresse, le numéro du registre auquel on veut accéder. Il y a dix-huit registres paramètres, donc cinq bits sont nécessaires pour les adresser. Le registre adresse est donc un registre cinq bits.
- Écrire ou lire dans le registre sélectionné.

Les registres paramètres sont numérotés de R0 à R17 et peuvent être subdivisés en trois groupes principaux :
1 – R0 à R3 : Programmation du format horizontal.
2 – R4 à R9 : Programmation du format vertical.
3 – R10 à R17 : Contrôle du curseur, de la RAM et du stylo-optique.

Ces registres sont en général à écriture seule, à l'exception des deux registres de contrôle de la position du stylo-optique qui sont, bien sûr à lecture seule, et des deux registres du contrôle de la position du curseur qui peuvent être utilisés en lecture ou en écriture.

La table suivante décrit la fonction des dix-huit registres paramètres :

   
Registers
Name
Traduction en français
Dec
Hexa
Unit
R0
Horizontal total character numberNb de caractères total en horizontal 0-255
63
3F
Character
R1
displayed character numberNb de caractères affichés en horizontal 0-255
40
28
Character
R2
Position of horizontal sync. pulsePosition de la synchronisation horizontale 0-255
46
2E
Character
R3
Width of horizontal/vertical sync. pulsesLongueur de la synchronisation 0-15
60
8E
Character
R4
Vertical total Line character numberNb total de lignes en vertical 0-127
38
26
Character
R5
Vertical raster adjustSynchronisation verticale 0-127
00
00
Scanline
R6
Vertical displayed character numberNb de lignes réelles affichées 0-127
24
18
Character
R7
Position of vertical sync. pulsePosition de la synchronisation verticale 0-127
30
1E
Character
R8
Interlaced mode Mode entrelacé 0-3
00
00
 
R9
Maximum rasterNb de lignes par caractère 0-31
07
07
Scanline
R10
Cursor start rasterPosition et forme du curseur 0-31
 
60
 
R11
Cursor endLigne de fin de curseur 0-31
 
07
 
R12
Display Start Address (High)Adresse haute début RAM écran 0-63
00
00
 
R13
Display Start Address (Low)Adresse basse début RAM écran 0-255
00
00
 
R14
Cursor Address (High)Adresse haute de la position du curseur 0-63
00
00
 
R15
Cursor Address (Low)Adresse basse de la position du curseur 0-255
00
00
 
R16
Light Pen Address (High)Adresse haute de la position du stylo-optique 0-63      
R17
Light Pen Address (Low)Adresse basse de la position du stylo-optique 0-255    






pics


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 contenu de l'EPROM 2716 est téléchargeable ici : romgecar.bin




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 :

















vducard.pdf


Créé sur un Mac