DCMOTO - Emulateur universel Thomson 8 bits : Forum - Programmation - Pré-octet des codes opération 6809
|
|
Daniel
Visiteur
|
Date : 02/02/2005 à 20h28
Quand on programme le 6809, il est quelquefois nécessaire de recourir à des astuces pour obtenir une temporisation précise au cycle près. Le groupe Puls maîtrise parfaitement ce sujet, et Yoann a donné beaucoup d'explications et de recettes sur le site pulsdemos
J'ajoute une recette personnelle, trouvée en observant le diagramme "Cycle-by-cycle performance" (fig. 17 sur la datasheet MC6809E de Motorola, voir page Documentation du site dcmoto) : dans le décodage des instructions, si le pré-octet est 0x10 ou 0x11, l'octet suivant est lu, et la boucle continue tant que l'octet lu est 0x10 ou 0x11. Dans le cas contraire, elle s'arrête et l'instruction est exécutée. Ce qui veut dire que si 10xx est une instruction valide, 1010xx l'est aussi, et par extension 1010101010.....101010xx également. On pourrait aussi intercaler des 11 dans la suite des 10, ou remplacer tous les 10 sauf le dernier par des 11. Sauf erreur de ma part, chaque pré-octet de plus ajoute un cycle d'horloge à la durée de l'opération.
Voilà l'idée, avec toutes les réserves d'usage car je ne l'ai pas encore testée. Si quelqu'un fait l'expérience, ce serait sympa de poster un petit compte-rendu.
Daniel
|
en haut - en bas |
|
|
|
Fool-DupleX
Visiteur
|
Date : 12/04/2005 à 17h06
Cela veut-il dire que l'on pourrait aussi incrementer artificiellement le PC de n octets ? par exemple passer de $7D00 à $7D08 d'un coup en codant 101010101010xxxx ?
A checker absolument !
Fool
|
en haut - en bas |
|
|
|
Yoann
Visiteur
|
Date : 13/04/2005 à 01h37
Le probleme, ca ne se compile pas, faut aller bidouiller a la main
|
en haut - en bas |
|
|
|
Daniel
Visiteur
|
Date : 13/04/2005 à 08h22
Et aussi, l'intérêt est très limité, car on peut obtenir le même résultat en codant 1212121212121212
Daniel
|
en haut - en bas |
|
|
|
|
|