le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Modérateurs : Papy.G, fneck, Carl
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Richard a réalisé un document de 240 pages, très complet et très détaillé sur le microprocesseur des années 80, le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840).
Ce document est décliné en PDF de 9,3 Mo ou en HMTL, Richard souhaite le mettre à disposition du forum, son seul souhait est d'avoir un retour par mail (keros6809(at)gmail.com) des éventuelles corrections, amélioration, ajouts de renseignements concernant ces composants.
version PDF :
http://download.system-cfg.com/f.php?h=1hWIBbOe&d=1
version HTML :
http://download.system-cfg.com/f.php?h=2QoGT6rj&d=1
Merci à Richard SOREK pour son partage.
Carl
Ce document est décliné en PDF de 9,3 Mo ou en HMTL, Richard souhaite le mettre à disposition du forum, son seul souhait est d'avoir un retour par mail (keros6809(at)gmail.com) des éventuelles corrections, amélioration, ajouts de renseignements concernant ces composants.
version PDF :
http://download.system-cfg.com/f.php?h=1hWIBbOe&d=1
version HTML :
http://download.system-cfg.com/f.php?h=2QoGT6rj&d=1
Merci à Richard SOREK pour son partage.
Carl
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Un parcours rapide du document montre le travail considérable effectué. Tellement considérable qu'il va être difficile de trouver des améliorations ou de corriger des erreurs. Apparemment il ne semble pas y en avoir beaucoup.
Ce document mériterait d'être mis sur internet pour une consultation en ligne. Pour cela il faudrait revoir une peu la version html pour scinder l'énorme page de 6 Mo en plusieurs petites pages à taille humaine.
Merci à Richard de diffuser son oeuvre !
Ce document mériterait d'être mis sur internet pour une consultation en ligne. Pour cela il faudrait revoir une peu la version html pour scinder l'énorme page de 6 Mo en plusieurs petites pages à taille humaine.
Merci à Richard de diffuser son oeuvre !
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
J'ai commencé à lire le document
Il est assez enorme et demande plusieurs jours de lecture.
Mais j'ai déjà quelques petites remarque que je vais m'empresser de lui envoyer.
Mais déjà une qui je trouve est un peu exagéré :
Je trouve qu'il y va un peu fort.
Certes j'ai vu des doc avec des erreurs. Mais de la a dire que "Pratiquement tous les documents", c'est un peu trop.
Jacques
Il est assez enorme et demande plusieurs jours de lecture.
Mais j'ai déjà quelques petites remarque que je vais m'empresser de lui envoyer.
Mais déjà une qui je trouve est un peu exagéré :
Code : Tout sélectionner
Après avoir recherché de la documentation sur le microprocesseur µp6809, je me suis vite rendu compte que
pratiquement tous les documents trouvés dans le commerce ou sur le WEB était trop succincts, incomplets et le
plus souvent truffés d'erreurs
Certes j'ai vu des doc avec des erreurs. Mais de la a dire que "Pratiquement tous les documents", c'est un peu trop.
Jacques
- SOREK
- Messages : 27
- Inscription : 25 févr. 2012 02:29
- Localisation : 59169 Férin (près de Douai, département du Nord 59)
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Bonjour,
Je ne souhaite vexer personne, mais après la comparaison de tous les documents que j'ai pu voir, c'est vrai que je me suis rendu compte qu'il y avait dans chaque ouvrage des petites erreurs, alors erreurs ou "coquilles d'impressions" ?
Si j'ai mis ce commentaire ce n'est pas pour faire bien, mais ce commentaire m'a été inspiré par un vécu bien réel.
Certes se sont parfois des petites erreurs facilement détectables, mais reste des erreurs.
Maintenant personne n'est parfait et il se peut que le fruit de mon travail comporte également des erreurs. C'est pour cela que j'ai décidé de le mettre à disposition de tous pour faire évoluer ce document, je m'engage à faire les corrections et de mettre sur ce formidable site mes dernières mises à jour.
Merci de toutes vos remarques positives comme négatives, elles sont les bienvenues, cela a le mérite de me donner un miroir différent sur ces propres idées.
Bonne journée.
Richard SOREK
Je ne souhaite vexer personne, mais après la comparaison de tous les documents que j'ai pu voir, c'est vrai que je me suis rendu compte qu'il y avait dans chaque ouvrage des petites erreurs, alors erreurs ou "coquilles d'impressions" ?
Si j'ai mis ce commentaire ce n'est pas pour faire bien, mais ce commentaire m'a été inspiré par un vécu bien réel.
Certes se sont parfois des petites erreurs facilement détectables, mais reste des erreurs.
Maintenant personne n'est parfait et il se peut que le fruit de mon travail comporte également des erreurs. C'est pour cela que j'ai décidé de le mettre à disposition de tous pour faire évoluer ce document, je m'engage à faire les corrections et de mettre sur ce formidable site mes dernières mises à jour.
Merci de toutes vos remarques positives comme négatives, elles sont les bienvenues, cela a le mérite de me donner un miroir différent sur ces propres idées.
Bonne journée.
Richard SOREK
- Papy.G
- Modérateur
- Messages : 3051
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Cherchant à me documenter récemment sur le 6850, je n'ai pas trouvé, dans mes premières recherches, de documents me semblants convenables, je ne manquerais pas de dire si celui-ci fait le job, et si je vois des corrections à faire.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Demandez-en plus, ou faites-le vous-même.
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
A l'usage on trouve quelques fautes pas graves, mais qui gênent un peu la lecture. Exemple :
- Interruption matériel programmée ?
J'ai lu cette partie car je me posais une question précise :
- Si le processeur est en attente d'interruption sur une instruction CWAI, il a déjà sauvé tous les registres dans la pile. Quand l'interruption arrive, je suppose qu'elle ne sauve pas à nouveau les registres ? Se branche-t-elle directement à l'adresse correspondant au vecteur d'interruption ?
Dans le paragraphe sur les interruptions, rien n'est précisé. Il est dit que l'interruption provoque l'empilage des registres. Est-ce vrai quand un CWAI est en attente ? Sinon, il serait bon de le mentionner.
Comme toujours, la documentation donne des indications mais pas de certitudes. Quand on veut être sûr, il faut tester sur une vraie machine. C'est toujours ainsi que j'ai procédé.
- un traitement déception ?Dans d'autres circonstances, CWAI permet aux programmeurs de sélectionner un endroit précis dans son programme pour lancer un traitement déception, même lorsqu'il s'agit d'une interruption matérielle. C'est pour la raison pour laquelle nous l'appelons "interruption matériel programmée" alliant les deux concepts matériel et logiciel.
CWAI écarte en quelque sorte de l'aspect aléatoire d'une interruption matérielle.
- Interruption matériel programmée ?
J'ai lu cette partie car je me posais une question précise :
- Si le processeur est en attente d'interruption sur une instruction CWAI, il a déjà sauvé tous les registres dans la pile. Quand l'interruption arrive, je suppose qu'elle ne sauve pas à nouveau les registres ? Se branche-t-elle directement à l'adresse correspondant au vecteur d'interruption ?
Dans le paragraphe sur les interruptions, rien n'est précisé. Il est dit que l'interruption provoque l'empilage des registres. Est-ce vrai quand un CWAI est en attente ? Sinon, il serait bon de le mentionner.
Comme toujours, la documentation donne des indications mais pas de certitudes. Quand on veut être sûr, il faut tester sur une vraie machine. C'est toujours ainsi que j'ai procédé.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Il suffit de prendre l'excellent livre de Claude DARDANNE :
Le microprocesseur 6809 Ses périphériques et le processeur graphique 9365-66
L'instructiuon CWAY y est tres bien expliqué dans le chapitre des interuptions.
Et dedans il est dit :
1 : Execution CWAY
2 : CCR ou octet immédiat --> CCR
3 : 1 -> E
4 : Sauvegarde des registres dans la pile S
5 : Attente d’interruption
6 : Traitement en fonction de l'IT reçue
Jacques
Le microprocesseur 6809 Ses périphériques et le processeur graphique 9365-66
L'instructiuon CWAY y est tres bien expliqué dans le chapitre des interuptions.
Et dedans il est dit :
1 : Execution CWAY
2 : CCR ou octet immédiat --> CCR
3 : 1 -> E
4 : Sauvegarde des registres dans la pile S
5 : Attente d’interruption
6 : Traitement en fonction de l'IT reçue
Jacques
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
On trouve aussi l'info dans le "MC6809-MC6809E 8-Bit Microprocessor Programming Manual [M6809PM/AD]" (version sur archive.org car sinon les pointeurs web disparaissent avec le temps.)
CWAI sert à répondre rapidement à une interruption alors que dans du code standard il faut attendre que l'instruction courante soit terminée (MUL utilise 11 cycles, et les PULS/PSHS peuvent être encore plus longs). Par contre la pile du FIRQ contient tous les registres (comme une IRQ pas fast) en cas de CWAI ce qui ne devrait pas changer grand chose si on ne programme pas comme un sagouin et qu'on a assez de place pour eux.
CWAI sert à répondre rapidement à une interruption alors que dans du code standard il faut attendre que l'instruction courante soit terminée (MUL utilise 11 cycles, et les PULS/PSHS peuvent être encore plus longs). Par contre la pile du FIRQ contient tous les registres (comme une IRQ pas fast) en cas de CWAI ce qui ne devrait pas changer grand chose si on ne programme pas comme un sagouin et qu'on a assez de place pour eux.
Dernière modification par __sam__ le 07 mars 2016 21:49, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Mais il n'est pas dit si l'interruption sauve à nouveau les registres ou pas. Je suppose que non, mais aucune des documentations ne précise ce point.
La documentation que j'utilise le plus souvent est le MC6809 Microprocessor Programming Manual :
http://dcmoto.free.fr/documentation/6809pm/index.html
Et si elle n'est pas assez claire je vérifie dans 6x09 Instruction Sets :
http://www.coco3.com/community/wp-conte ... n_Sets.pdf
Mais, encore une fois, seul un essai sur la vraie machine permet de s'assurer de l'interprétation des explications données. Je ne dis pas qu'elles sont fausses, mais que dans certains cas il reste des zones d'ombre. J'aimerais trouver un jour une documentation ne laissant aucune place aux hypothèses incertaines.
La documentation que j'utilise le plus souvent est le MC6809 Microprocessor Programming Manual :
http://dcmoto.free.fr/documentation/6809pm/index.html
Et si elle n'est pas assez claire je vérifie dans 6x09 Instruction Sets :
http://www.coco3.com/community/wp-conte ... n_Sets.pdf
Mais, encore une fois, seul un essai sur la vraie machine permet de s'assurer de l'interprétation des explications données. Je ne dis pas qu'elles sont fausses, mais que dans certains cas il reste des zones d'ombre. J'aimerais trouver un jour une documentation ne laissant aucune place aux hypothèses incertaines.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
@Daniel, la doc donne l'info sous la forme de l'organigramme page 34: http://dcmoto.free.fr/documentation/680 ... ts&page=34
Donc pas de double empilage (ca serait contre-productif de toute façon).
Donc pas de double empilage (ca serait contre-productif de toute façon).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Bonjour
- Comment le vérifier en vrai?
- Empilage avant l'IT? Empilage quand l'IT arrive?
Daniel,
T'as une sonde JTag pour vérifier tout ça?
Ca m'interpelle.
Jacques
Questions idiotes:Daniel a écrit : - Si le processeur est en attente d'interruption sur une instruction CWAI, il a déjà sauvé tous les registres dans la pile. Quand l'interruption arrive, je suppose qu'elle ne sauve pas à nouveau les registres ? Se branche-t-elle directement à l'adresse correspondant au vecteur d'interruption ?
.....
Dans le paragraphe sur les interruptions, rien n'est précisé. Il est dit que l'interruption provoque l'empilage des registres. Est-ce vrai quand un CWAI est en attente ? Sinon, il serait bon de le mentionner.
- Comment le vérifier en vrai?
- Empilage avant l'IT? Empilage quand l'IT arrive?
Daniel,
T'as une sonde JTag pour vérifier tout ça?
Ca m'interpelle.
Jacques
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Comprenez moi bien : je crois avoir deviné ce que fait l'instruction CWAI. Je voulais simplement faire remarquer que toutes les documentations ne sont pas claires sur ce sujet. Prenons par exemple le MC6809-MC6809E Microprocessor Programming Manual à la page 3-2 :
Si je me trompe, n'hésitez pas à me contredire. Si je ne me trompe pas, j'aurais bien aimé voir cela écrit dans la doc.
Il est écrit noir sur blanc que l'interruption FIRQ empile CC et PC. C'est vrai s'il n'y a pas de CWAI en attente d'interruption. Par contre, si le programme est arrêté sur un CWAI tous les registres ont déjà été empilés. Dans ce cas l'interruption provoque seulement un branchement à l'adresse de traitement de FIRQ, mais pas l'empilage des registres.1.11.10.2 Fast Interrupt Request (FIRQ).
This input is used to initiate a fast interrupt request sequence. Initiation depends on the F (fast interrupt request mask) bit in the condition code register being clear. This bit is set during reset. During the interrupt, only the contents of the condition code register and the program counter are stacked resulting in a short amount of time required to service this interrupt. This interrupt has a higher priority than the normal interrupt request (IRQ).
Si je me trompe, n'hésitez pas à me contredire. Si je ne me trompe pas, j'aurais bien aimé voir cela écrit dans la doc.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Il y a un protocole pour vérifier l'occupation de la pile que l'on peut adapter pour le cas du CWAI: Il suffit de la remplir avec un contenu défini ($AA, $55 ou autre), de mettre une autre valeur dans les registres (A=1, B=2, X=$0304, Y=$0506, etc). Faire le CWAI, laisser l'interruption arriver, la routine de service recopie alors la pile dans un endroit séparé, et une fois sorti du CWAI, examiner la copie qui a été faite. L'endroit où les $55 sont remplacés par des $01 $02 etc donne l'empreinte mémoire ainsi que l'ordre d'empilement des octets des registres.jb_jb_fr a écrit :Questions idiotes:
- Comment le vérifier en vrai?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
- Papy.G
- Modérateur
- Messages : 3051
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Ce toute manière, si c'était empilé deux fois, il faudrait le dépiler deux fois aussi, sous peine de plantage le cas échéant, vous tous qui programmez sur 6809 depuis longtemps vous en seriez déjà rendu compte.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Demandez-en plus, ou faites-le vous-même.
Re: le fabuleux MC 6809 et ses périphériques (6821, 6850, 6840)
Encore une fois, dans ce sujet, nous n'essayons pas de savoir ce que fait l'instruction CWAI, ni les interruptions matérielles. Nous discutons de la qualité de la documentation. Je voulais seulement faire remarquer que la documentation peut être mal interprétée et faire naître des incertitudes. Encore une fois aussi je ne dis pas qu'elle est fausse, mais qu'elle laisse planer des doutes.
La documentation du processeur 6809 n'est pas un cas isolé. Tous les lecteurs de la datasheet de l'EF9345 se sont aussi posé des questions pour interpréter certaines subtilités, moi le premier. Ceux qui écrivent des documentations devraient se mettre dans la peau d'un programmeur, ou mieux d'un créateur d'émulateur. Ces deux activités demandent une précision absolue qui ne se satisfait pas d'explications superficielles ou approximatives ou incomplètes.
La documentation du processeur 6809 n'est pas un cas isolé. Tous les lecteurs de la datasheet de l'EF9345 se sont aussi posé des questions pour interpréter certaines subtilités, moi le premier. Ceux qui écrivent des documentations devraient se mettre dans la peau d'un programmeur, ou mieux d'un créateur d'émulateur. Ces deux activités demandent une précision absolue qui ne se satisfait pas d'explications superficielles ou approximatives ou incomplètes.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.