TAVERNIER 6809
Modérateurs : Papy.G, fneck, Carl
Re: TAVERNIER 6809
https://www.franck-pissotte.fr/ vide grenier
Re: TAVERNIER 6809
En haute résolution, Christian Tavernier indique 512 x 256 pour la carte AGC09, et il ajoute qu'elle peut faire au moins 20 ou 24 lignes de 80 caractères (H-P n°1709 page 83).michel guyot a écrit : ↑05 juin 2023 11:08 Mais ce que je cherche à éclaircir, ce sont les capacités réelles d'affichage en terme de résolution du CRTC MC6845.
Par ailleurs, sur la datasheet du MC6845, il y a page 17 à 22 d'intéressantes formules pour calculer les performances possibles à obtenir en fonction des divers paramètres du montage à réaliser :
http://bitsavers.trailing-edge.com/comp ... s/6845.pdf
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Re: TAVERNIER 6809
Voilà. Le fichier excel est ci joint.
Cordialement.
Philippe
Cordialement.
Philippe
- Pièces jointes
-
- 6845.zip
- (2.77 Kio) Téléchargé 38 fois
Someday I'll get you, Red Baron !
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Voici un premier tracé réalisé avec la carte AGC09...
Pour l'instant, la résolution est de 512 points x 256 lignes
Le mode d'affichage s'obtient avec des blocs de 8x4 ( soit 64 blocs en H et 64 blocs en V)
En attendant de trouver mieux, j'ai un peu examiné ce que pourrait être le coeur du driver
C'est à dire , à partir des coordonnées x,y de l'écran définir l'adresse et la valeur de l'octet à écrire en RAM
Un algorithme de tracé de cercle permet de solliciter la routine
Voilà pour l'instant
A plus
Michel
Voici un premier tracé réalisé avec la carte AGC09...
Pour l'instant, la résolution est de 512 points x 256 lignes
Le mode d'affichage s'obtient avec des blocs de 8x4 ( soit 64 blocs en H et 64 blocs en V)
En attendant de trouver mieux, j'ai un peu examiné ce que pourrait être le coeur du driver
C'est à dire , à partir des coordonnées x,y de l'écran définir l'adresse et la valeur de l'octet à écrire en RAM
Un algorithme de tracé de cercle permet de solliciter la routine
Voilà pour l'instant
A plus
Michel
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
J'ai remanié le jeu de caractères graphiques et le mode d'affichage pour améliorer la résolution du dessin.
La résolution de l'écran est toujours de 512 x 256
Le mode d'affichage s'obtient toujours avec des blocs de 8 x 4
La structure des blocs est la suivante :
00 00 00 00
00 00 00 00
00 00 00 11
00 00 00 11
Code $01
00 00 00 00
00 00 00 00
00 00 11 11
00 00 11 11
Code $03
11 00 00 00
11 00 00 00
00 00 00 00
00 00 00 00
Code $80
L'écriture d'un bloc à une adresse tenant compte de l'état existant, la résolution apparente est améliorée
puisque l'écriture d'un octet permet d'intervenir sur des groupes de pixels de 2 x 2
Cette fois , le tracé de cercle est plus sympa !
A plus
Michel
J'ai remanié le jeu de caractères graphiques et le mode d'affichage pour améliorer la résolution du dessin.
La résolution de l'écran est toujours de 512 x 256
Le mode d'affichage s'obtient toujours avec des blocs de 8 x 4
La structure des blocs est la suivante :
00 00 00 00
00 00 00 00
00 00 00 11
00 00 00 11
Code $01
00 00 00 00
00 00 00 00
00 00 11 11
00 00 11 11
Code $03
11 00 00 00
11 00 00 00
00 00 00 00
00 00 00 00
Code $80
L'écriture d'un bloc à une adresse tenant compte de l'état existant, la résolution apparente est améliorée
puisque l'écriture d'un octet permet d'intervenir sur des groupes de pixels de 2 x 2
Cette fois , le tracé de cercle est plus sympa !
A plus
Michel
Dernière modification par michel guyot le 11 juin 2023 11:35, modifié 1 fois.
-
- Messages : 248
- Inscription : 22 mars 2022 20:23
- Localisation : Pas trop loin au sud de Paris
Re: TAVERNIER 6809
L'amélioration est manifeste, bravo.
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Pour la carte AGC09, je poursuis l'adaptation du driver utilisé avec mes précédentes cartes et sur le MicroBoxII
Si la carte ELEKTOR travaille avec un processeur EF9367, la carte MSX avec un V9938, la carte MBII un NEC PD7220, ici la situation s'est un peu compliquée.
Le processeur MC6845 ne possède pas de commandes de tracer spécialisées....
J'ai un peu galéré pour élaborer une routine de tracé de segment, mais bon je ne suis plus loin du but, il me reste à traiter les cas particuliers...
A plus,
Michel
Pour la carte AGC09, je poursuis l'adaptation du driver utilisé avec mes précédentes cartes et sur le MicroBoxII
Si la carte ELEKTOR travaille avec un processeur EF9367, la carte MSX avec un V9938, la carte MBII un NEC PD7220, ici la situation s'est un peu compliquée.
Le processeur MC6845 ne possède pas de commandes de tracer spécialisées....
J'ai un peu galéré pour élaborer une routine de tracé de segment, mais bon je ne suis plus loin du but, il me reste à traiter les cas particuliers...
A plus,
Michel
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Subsistent quelques points de détail, mais les principales commandes du driver sont en place.
Exemple des commandes saisies pour obtenir l'image ci-dessous
Y255,50,49 => tracé d'un cercle de rayon 50
C4,0 => couleur rouge sur fond noir
J10,-100 => tracé d'un segment dx=10, dy=-100
Ces commandes peuvent être générées en BASIC (Exemple PRINT "Y255,50,49" ) ce qui permet la génération de figures complexes..
A plus
Michel
***********************
>X
TAVDOS 6809 V1.0 Unlock
DATE (JJ,MM,AA)? 26,06,23
+++GET 2.CHROUT30.BIN
+++
TAVBUG09 V1.C
>C A000
PC-F80E A-00 B-10 X-EC61 Y-E002 U-EFC2 S-EF52 CC-D4 DP-00
>C A003
PC-F80E A-00 B-FF X-0000 Y-E002 U-A043 S-EF52 CC-D4 DP-00
>C A9F6
Y255,80,79
M130,127
Y255,80,79
C1,0
Y255,70,69
C2,0
Y255,60,59
C3,0
Y255,50,49
C4,0
Y255,40,39
C5.,0
Y255,30,29
C6,0
Y255,90,89
M255,127
Y255,80,79
Y255,70,69
C6,0
Y255,60,59
C5,0
Y255,50,49
C4,0
Y255,40,39
J100,0
C2,0
J0,-100
C1,0
D130,127
C7,0
J0,-50
D300,200
J50,0
C5,0
J0,-60
J40,0
C3,0
J50,0
C4,0
Y50,20
J0,-50
C7,0
Y200,50,40
C2,0
J0,-10
Y255,30,29
C-F80E A-1B B-50 X-03B4 Y-A7C3 U-A043 S-EF52 CC-D4 DP-00
>
Subsistent quelques points de détail, mais les principales commandes du driver sont en place.
Exemple des commandes saisies pour obtenir l'image ci-dessous
Y255,50,49 => tracé d'un cercle de rayon 50
C4,0 => couleur rouge sur fond noir
J10,-100 => tracé d'un segment dx=10, dy=-100
Ces commandes peuvent être générées en BASIC (Exemple PRINT "Y255,50,49" ) ce qui permet la génération de figures complexes..
A plus
Michel
***********************
>X
TAVDOS 6809 V1.0 Unlock
DATE (JJ,MM,AA)? 26,06,23
+++GET 2.CHROUT30.BIN
+++
TAVBUG09 V1.C
>C A000
PC-F80E A-00 B-10 X-EC61 Y-E002 U-EFC2 S-EF52 CC-D4 DP-00
>C A003
PC-F80E A-00 B-FF X-0000 Y-E002 U-A043 S-EF52 CC-D4 DP-00
>C A9F6
Y255,80,79
M130,127
Y255,80,79
C1,0
Y255,70,69
C2,0
Y255,60,59
C3,0
Y255,50,49
C4,0
Y255,40,39
C5.,0
Y255,30,29
C6,0
Y255,90,89
M255,127
Y255,80,79
Y255,70,69
C6,0
Y255,60,59
C5,0
Y255,50,49
C4,0
Y255,40,39
J100,0
C2,0
J0,-100
C1,0
D130,127
C7,0
J0,-50
D300,200
J50,0
C5,0
J0,-60
J40,0
C3,0
J50,0
C4,0
Y50,20
J0,-50
C7,0
Y200,50,40
C2,0
J0,-10
Y255,30,29
C-F80E A-1B B-50 X-03B4 Y-A7C3 U-A043 S-EF52 CC-D4 DP-00
>
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous,
Ci-dessous la liste des cartes utilisées sur mes deux TAVERNIER...
Après cette carte AGC09, le TAVERNIER version 85 pourrait être un nouveau cheval de bataille...
A plus
Michel
Ci-dessous la liste des cartes utilisées sur mes deux TAVERNIER...
Après cette carte AGC09, le TAVERNIER version 85 pourrait être un nouveau cheval de bataille...
A plus
Michel
Re: TAVERNIER 6809
J'avais en son temps fait une carte IVG légèrement modifiée : 8K au lieu de 4K de mémoire vidéo. Pour l'affichage alphanumérique, ça ne changeait rien. Pour le graphique, la résolution était de 320 par 200 (ce qui permettait de coïncider avec le format de l'écran avec des pixels "carrés", et donc des cercles ronds).Notator a écrit : ↑05 juin 2023 14:07En haute résolution, Christian Tavernier indique 512 x 256 pour la carte AGC09, et il ajoute qu'elle peut faire au moins 20 ou 24 lignes de 80 caractères (H-P n°1709 page 83).michel guyot a écrit : ↑05 juin 2023 11:08 Mais ce que je cherche à éclaircir, ce sont les capacités réelles d'affichage en terme de résolution du CRTC MC6845.
Par ailleurs, sur la datasheet du MC6845, il y a page 17 à 22 d'intéressantes formules pour calculer les performances possibles à obtenir en fonction des divers paramètres du montage à réaliser :
http://bitsavers.trailing-edge.com/comp ... s/6845.pdf
Le plus intéressant dans la datasheet du MC6845, c'est la page 1, où il est précisé qu'en utilisant les adresses de ligne, on peut adresser plus de 16Ko.
Du coup il doit être possible d'utiliser plus de mémoire pour avoir des capacités graphiques plus intéressantes. Il doit être possible d'utiliser 32, voire 48K pour l'affichage en page 0, mais cela doit apporter des contraintes graphiques (il faut que le passage à la ligne suivante de la mémoire caractère coïncide avec une fin de ligne à l'affichage, donc que le nombre de pixels horizontaux soit une puissance de 2)
Par exemple, avec 32K on peut avoir un affichage 512 par 512, en considérant que le nombre de lignes par caractère est 2, et en utilisant RA0 entre
MA5 et MA6 pour l'adressage mémoire côté vidéo : première ligne = 64 caractères avec RA0 = 0, seconde ligne avec RA0 = 1, et ainsi de suite. Il n'y a d'ailleurs pas besoin d'EPROM générateur de caractère dans ce cas...
Mon rêve serait plutôt de faire une carte avec 96K de mémoire et une résolution de 1024x768, avec la mémoire répartie sur 2 pages mémoires. Cela nécessiterait de modifier un peu la gestion des pages sur la carte CPU (et éventuellement d'ajouter une ligne de sélection de page supplémentaire)
Reste la fréquence de balayage : il faudra sûrement utiliser une horloge pixel plus rapide (20-25 Mhz) et on risque d'avoir des soucis pour les accès mémoire. Peut être faudra-t-il travailler sur 16 bits au niveau de la mémoire vidéo, ce qui apportera encore quelques contraintes supplémentaires !
Michel W
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour mjwurtz,
J'ai un peu de mal à te suivre...
Avec le format de caractères ( 8 points x 4 lignes) et la programmation du CRTC que j'ai retenu , l'image est formée de H=64 caractères x V=64 blocs
ce qui donne une résolution apparente de 256 lignes x 512 points
Ma question est de savoir, compte tenu de la conception de cette carte AGC09, quelle est la programmation possible du CRTC 6845 permettant d'obtenir une meilleur résolution...
La réponse est peut-être donnée par la note d'application AN-0834_Using_The_MC68000_And_The_MC6845_For_A_Color_Graphics_System.pdf.
Mais bon, je ne connais pas suffisamment le MC68000 pour analyser le code proposé...
Peut-être qu'une bonne âme pourra nous aider...
A plus
Michel
J'ai un peu de mal à te suivre...
Avec le format de caractères ( 8 points x 4 lignes) et la programmation du CRTC que j'ai retenu , l'image est formée de H=64 caractères x V=64 blocs
ce qui donne une résolution apparente de 256 lignes x 512 points
Ma question est de savoir, compte tenu de la conception de cette carte AGC09, quelle est la programmation possible du CRTC 6845 permettant d'obtenir une meilleur résolution...
La réponse est peut-être donnée par la note d'application AN-0834_Using_The_MC68000_And_The_MC6845_For_A_Color_Graphics_System.pdf.
Mais bon, je ne connais pas suffisamment le MC68000 pour analyser le code proposé...
Peut-être qu'une bonne âme pourra nous aider...
A plus
Michel
Re: TAVERNIER 6809
Bonsoir Michel,
Désolé, j'ai du faire face à des impondérables et ai enfin le temps de répondre...
Le 6845 a 14 lignes d'adresse (soit 16k mots, un mot = 8 bits dans le cas du 6809)
L'intérêt du 68000, c'est d'avoir un bus de données de 16bits. Donc les mots font 16 bits et les blocs font 16 bits de large x n lignes.
Ceci permet d'utiliser moitié moins de lignes d'adresse pour la même quantité de mémoire vidéo.
La note AN-0834 utilise une mémoire vidéo de 4 x 4k mots de 16 bits (Rouge, vert, bleu et luminance pour doubler le nombre de couleurs) et offre une résolution de 256x256, mais avec les 14 lignes d'adresse du 6845, on peut aller jusqu'à 4 x 16k mots de 16 bits, soit une résolution de 512x512.
Pour ce qui est de la carte AGC09, on est toujours limité par la mémoire accessible, soit 16k x 8bits, donc 128k pixels. Ceci correspond à ta résolution de 256 lignes de 512 points. La seule modification possible, c'est le rapport largeur/hauteur de ton image. Si au lieu d'un ration 1/2 (256 lignes de 512 pixels), tu veux un rapport 3/4, tu peux programmer le 6845 pour 52 caractères par lignes (416 pixels) et 63 lignes, chaque bloc faisant 5 lignes de haut, ce qui donne 315 lignes sur l'image. On utilise ainsi 16380 octets de mémoire sur les 16384 disponibles...
Si on veut plus, il faut modifier le circuit :
- soit utiliser une mémoire vidéo sur 16 bits, avec des registres à décalage sur 16 bits. on dispose alors du double de pixels et donc 512x512 est possible
- soit utiliser les adresses de ligne de blocs pour adresser plus de mémoire : en gros, le(s) bit(s) de poids faible de l'adresse ligne de bloc ser(ven)t en fait de ligne d'adresse mémoire vidéo complémentaire, ce qui permet là aussi d'adresser 32k (ou 64k, 128k, etc.) octets au lieu de 16k)
Reste ensuite à adresser cela côté 6809 !
A+,
Michel W.
Désolé, j'ai du faire face à des impondérables et ai enfin le temps de répondre...
Le 6845 a 14 lignes d'adresse (soit 16k mots, un mot = 8 bits dans le cas du 6809)
L'intérêt du 68000, c'est d'avoir un bus de données de 16bits. Donc les mots font 16 bits et les blocs font 16 bits de large x n lignes.
Ceci permet d'utiliser moitié moins de lignes d'adresse pour la même quantité de mémoire vidéo.
La note AN-0834 utilise une mémoire vidéo de 4 x 4k mots de 16 bits (Rouge, vert, bleu et luminance pour doubler le nombre de couleurs) et offre une résolution de 256x256, mais avec les 14 lignes d'adresse du 6845, on peut aller jusqu'à 4 x 16k mots de 16 bits, soit une résolution de 512x512.
Pour ce qui est de la carte AGC09, on est toujours limité par la mémoire accessible, soit 16k x 8bits, donc 128k pixels. Ceci correspond à ta résolution de 256 lignes de 512 points. La seule modification possible, c'est le rapport largeur/hauteur de ton image. Si au lieu d'un ration 1/2 (256 lignes de 512 pixels), tu veux un rapport 3/4, tu peux programmer le 6845 pour 52 caractères par lignes (416 pixels) et 63 lignes, chaque bloc faisant 5 lignes de haut, ce qui donne 315 lignes sur l'image. On utilise ainsi 16380 octets de mémoire sur les 16384 disponibles...
Si on veut plus, il faut modifier le circuit :
- soit utiliser une mémoire vidéo sur 16 bits, avec des registres à décalage sur 16 bits. on dispose alors du double de pixels et donc 512x512 est possible
- soit utiliser les adresses de ligne de blocs pour adresser plus de mémoire : en gros, le(s) bit(s) de poids faible de l'adresse ligne de bloc ser(ven)t en fait de ligne d'adresse mémoire vidéo complémentaire, ce qui permet là aussi d'adresser 32k (ou 64k, 128k, etc.) octets au lieu de 16k)
Reste ensuite à adresser cela côté 6809 !
A+,
Michel W.
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour mjwurtz
Merci pour ta réponse
Cependant quelque chose me chagrine sur cette carte, à moins que ce ne soit la chaleur actuelle ralentisse mes neurones...
Ce n'est pas la mémoire en place qui limite ce que le CRTC est capable d'afficher sur l'écran...
Ci-dessous un dessin qui me semble plus explicite quant à la configuration actuelle de ma carte
A plus
Michel
Merci pour ta réponse
Cependant quelque chose me chagrine sur cette carte, à moins que ce ne soit la chaleur actuelle ralentisse mes neurones...
Ce n'est pas la mémoire en place qui limite ce que le CRTC est capable d'afficher sur l'écran...
Ci-dessous un dessin qui me semble plus explicite quant à la configuration actuelle de ma carte
A plus
Michel
Re: TAVERNIER 6809
Bonjour Michel,
16k est effectivement le maximum adressable par le 6845.
Ensuite tout dépend effectivement du mode : graphique ou alphanumérique.
En mode graphique haute résolution, le générateur de caractère est normalement uniquement là pour respecter le timing : 1 octet en mémoire vidéo = 8 pixels. Chaque ligne du générateur de caractère renvoie la même valeur, celle de l'octet donné en entrée. Donc on est lié par la taille mémoire.
Dans le cas de l'AGC, je crois comprendre que le générateur est utilisé pour créer des blocs carrés de 4 pixels. Ça ne change pas la taille maxi utilisable, juste la taille de l'image affichée. On reste lié à la taille mémoire, parce que le générateur de caractère fournit des blocs de 8x4 =32 pixels par caractère (en théorie plus de 2 milliards de combinaisons différentes)... mais en fait on ne peut pas adresser avec un octet plus de 256 valeurs différentes, donc on réduit le générateur à 8 blocs de 4 pixels (256 combinaisons possibles).
Avec un générateur de caractère en RAM et un peu de pré-calcul, on doit pouvoir afficher des images plus fines en faisant quelques sacrifices et interpolation, mais pour dessiner ça n'ira pas...
La fréquence du quartz (12Mhz ?) est par ailleurs un peu faible : si on voulait en alphanumérique afficher 80 lignes de 25 caractères il faudrait un quartz de 14 Mhz au minimum. La carte IVG09 avait un quartz de 16 Mhz et est donc plus universelle de ce point de vue...
A+,
Michel.
16k est effectivement le maximum adressable par le 6845.
Ensuite tout dépend effectivement du mode : graphique ou alphanumérique.
En mode graphique haute résolution, le générateur de caractère est normalement uniquement là pour respecter le timing : 1 octet en mémoire vidéo = 8 pixels. Chaque ligne du générateur de caractère renvoie la même valeur, celle de l'octet donné en entrée. Donc on est lié par la taille mémoire.
Dans le cas de l'AGC, je crois comprendre que le générateur est utilisé pour créer des blocs carrés de 4 pixels. Ça ne change pas la taille maxi utilisable, juste la taille de l'image affichée. On reste lié à la taille mémoire, parce que le générateur de caractère fournit des blocs de 8x4 =32 pixels par caractère (en théorie plus de 2 milliards de combinaisons différentes)... mais en fait on ne peut pas adresser avec un octet plus de 256 valeurs différentes, donc on réduit le générateur à 8 blocs de 4 pixels (256 combinaisons possibles).
Avec un générateur de caractère en RAM et un peu de pré-calcul, on doit pouvoir afficher des images plus fines en faisant quelques sacrifices et interpolation, mais pour dessiner ça n'ira pas...
La fréquence du quartz (12Mhz ?) est par ailleurs un peu faible : si on voulait en alphanumérique afficher 80 lignes de 25 caractères il faudrait un quartz de 14 Mhz au minimum. La carte IVG09 avait un quartz de 16 Mhz et est donc plus universelle de ce point de vue...
A+,
Michel.
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour mjwurtz
Merci pour tes explications, qui éclairent un peu ma lanterne.
Finalement, j'ai l'impression d'avoir ré-inventé la roue...!
Concernant la carte AGC09 et son mode de fonctionnement,
j'ai été conduit à reconstituer un jeu de 256 caracteres qui manipule des blocs de 2x2 (Cf mon post du 10-06-2023)
00 00 00 00
00 00 00 00
00 00 00 11
00 00 00 11
Code $01
00 00 00 00
00 00 00 00
00 00 11 11
00 00 11 11
Code $03
11 00 00 00
11 00 00 00
00 00 00 00
00 00 00 00
Code $80
etc
c'est une solution
Autre solution que tu évoques, le générateur de caractères restitue en sortie l'octet qu'il reçoit en entrée.
Mai alors, quel en est le contenu ?
Ci-dessous un extrait du contenu du générateur de caractère GCG de la carte IVG09
La prom contient un motif répétitif que j'ai du mal à comprendre
A plus
Michel
Merci pour tes explications, qui éclairent un peu ma lanterne.
Finalement, j'ai l'impression d'avoir ré-inventé la roue...!
Concernant la carte AGC09 et son mode de fonctionnement,
j'ai été conduit à reconstituer un jeu de 256 caracteres qui manipule des blocs de 2x2 (Cf mon post du 10-06-2023)
00 00 00 00
00 00 00 00
00 00 00 11
00 00 00 11
Code $01
00 00 00 00
00 00 00 00
00 00 11 11
00 00 11 11
Code $03
11 00 00 00
11 00 00 00
00 00 00 00
00 00 00 00
Code $80
etc
c'est une solution
Autre solution que tu évoques, le générateur de caractères restitue en sortie l'octet qu'il reçoit en entrée.
Mai alors, quel en est le contenu ?
Ci-dessous un extrait du contenu du générateur de caractère GCG de la carte IVG09
La prom contient un motif répétitif que j'ai du mal à comprendre
A plus
Michel