A) Difficile à expliquer en quelques lignes. Déjà Thomson TO et Thomson MO sont deux cas particuliers, puisqu'ils nécessitent l'un et l'autre un magnétophone spécial. Pour les autres (Alice, VG5000, Exelvision) le principe est de faire varier la fréquence d'un signal sinusoïdal. En général n1 périodes à une fréquence f1 pour les bits 0, et n2 périodes à une fréquence f2 pour le bit 1 (n1 et n2 peuvent varier de 1 à 4). De plus certains formats ajoutent des bits de contrôle à chaque octet. Par exemple deux bits de start et un bit de stop, ou l'inverse. Ca, c'est pour le codage de l'octet.
Après les octets sont groupés en blocs, avec un signal de synchronisation, une en-tête de bloc, un identifiant et divers attributs : au minimum la longueur du bloc, parfois une checksum, parfois une adresse de chargement en mémoire.
Un ensemble de blocs forme un fichier : typiquement le fichier est composé d'un bloc d'en-tête, de n blocs de données, d'un bloc de fin. Mais ce n'est pas toujours le cas : par exemple un fichier VG5000 n'a pas de bloc de fin et toujours un seul bloc de données (mais il peut être très long).
B) Les TO et les MO ont une carte mémoire différente, ce qui rend pratiquement incompatibles tous les programmes en langage machine. De plus le mode d'appel des fonctions système est différent et incompatible. Ceci dit, le programmeur peut écrire du code parfaitement translatable et tester le système pour savoir comment appeler les fonctions. Dans ce cas il n'est pas impossible d'obtenir une certaine compatibilité, mais c'est très difficile et très peu courant.
Après on se heurte aux évolutions du matériel et du système dans chaque gamme. Il y a un semblant de compatibilité ascendante, qui permet de faire tourner une partie des programmes sur la machine de génération suivante : par exemple un programme TO7 peut assez souvent tourner sur TO7-70, probablement sur TO9 et peut-être même sur TO8. Mais il ne faut pas qu'il fasse des choses trop subtiles. Les mécanismes de commutation de pages, d'affichage, d'appel de fonctions ont de petites différence et la compatibilité n'est jamais garantie.
La compatibilité descendante est complètement impossible.
Après ces considérations générales, on peut se poser la question des programmes Basic. Les instructions les plus courantes sont communes à tous les Basics de toutes les machines. Par exemple GOTO, FOR, NEXT, IF, etc...
Si un programme Basic n'utilise que des instructions communes, ne fait aucun POKE ou PEEK ou appel de fonctions système, il peut tourner sur toutes les machines Thomson. Exemple :
Mais les programmes aussi simples sont très rares. Donc dans la majorité des cas les programmes Basic aussi sont incompatibles.