Samuel Devulder a écrit:
En réalité il y a 2 filtres indépendants. Un comparateur compare le niveau de sortie des deux filtres, et celui qui est le plus "fort" emporte la décision. Avec ses 900bauds, un bit dure 1.1ms ce qui me semble relativement long. Il faudrait faire des mesures à l'oscillo, mais je ne serais pas surpris si avec seulement 3 périodes (467µs ou 667µs)
C'est à voir

.
Côté soft, il est facile de faire beaucoup de mesures et de les accumuler directement dans un registre, et de prendre une décision en fonction d'un seuil (registre > au seuil = "c'est un 1").
A mon avis le problème est surtout de rester synchronisé avec le magnétophone. La vitesse de défilement de la bande est assez variable. Sur MO5, les timings utilisés permettent d'avoir un truc comme 30% d'erreur sur la vitesse de défilement de la bande sans avoir de problème. Je ne sais pas si ça marche aussi bien avec les filtres à fréquence fixe du TO.
En tout cas, en faisant plein de mesures successives, on risque de se décaler et de mesurer entre 2 bits ce qui rend la détection difficile. C'est pour ça que les blocs sont assez courts et ont une tonalité pilote de synchronisation qui permet au minimum de s'aligner sur la vitesse de la bande, et au mieux de détecter la polarité des oscillations, la vitesse exacte, etc.
Le codage du MO5 est plutôt bien fait et s'en sort avec une durée de synchro très courte tout en étant très tolérant sur les variation de vitesse et de polarité. C'est plutôt bien joué.
Citation:
Sur les TO7, la RAM couleur n'a que 6bits. Les deux derniers bits de poids forts sont toujours à 1. Ca ne marchera pas

J'avais oublié ce détail.
Pour passer en mémoire couleur ma solution est d'avoir un bloc de 1 byte chargé à l'adresse du PIA qui permet d'activer les couleurs. Mais ce n'est pas très propre...
Sinon, j'ai pensé à un truc : Exomizer est un décompresseur séquentiel. Il commence à lire les données par un bout et finit par l'autre, et le résultat décompressé est stocké dans le même sens. Du coup, on peut presque entièrement superposer les données compressées et décompressées, et mettre seulement le code de décompression à côté. On doit arriver à un overhead de quelque chose comme 200 octets, qui doit tenir dans la zone de l'écran non visible, à l'abri du curseur, ou bien à côté des données compressées s'il y a la place.