Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[TO7] k7towav

39 views
Skip to first unread message

Doug713705

unread,
Jan 10, 2010, 9:51:02 AM1/10/10
to
Bonjour � toutes, tous,

J'ai salement cod� un sorte de k7towav pour le TO7 (c'est plus un moche
bricolage amateur en python bien crado suivi d'un script bash qu'un
v�ritable programme) mais n'ayant pas le TO7 sous la main je peux pas
le tester pour le moment.

Toutefois, � l'oreille, on retrouve bien les m�lodies d'antan ;-)

Cependant, n'ayant pas vraiment les comp�tences pour valider mes "choix
techniques" (on fait avec ce qu'on a !), j'ai quelques questions � vous
soumettre :

Samuel Devulder a expliqu� qu' il faillait "5 p�riodes � 4.5khz pour
un bit � 0 et 7 p�riodes � 6.3khz pour un bit � 1".

Je n'ai pas de comp�tences particuli�re en electronique mais j'ai pu
trouver sur le net que T=1/f.
Pour 6300 hz cela nous donne donc 0.15873015873015872 * 7 = 1.1111... ms
quand pour 4500 hz cela donne 0.2222222222222222 * 5 = 1.1111... ms.

N'ayant pas non plus les comp�tences math�matiques pour coder un
g�n�rateur de fr�quences, apr�s moultes recherches j'ai fini par
trouver siggen (http://www.comp.leeds.ac.uk/jj/linux/siggen.html) mais
celui-ci permet de g�n�rer des signaux que sur des valeurs enti�res de
millisecondes.

- Est-ce grave docteur ?
- Si non mieux vaut-il couper � 1ms ou � 2 ms ?
- Si oui, connaissez vous un g�n�rateur de tonalit�s attaquable en
ligne de commande ayant une pr�cision suffisante ou mieux
quelque chose �quivalent utilisable en python (snack ne s'installe pas
chez moi) ?

Evidemment � couper sur des valeurs enti�res, les cycles ne peuvent pas
se "raccorder" parfaitement et en analysant la courbe avec audacity on
voit bien que les "raccords" ne se font pas sur 0.

Par ailleurs, la "forme d'onde" � t-elle une importance ?
- Si oui, laquelle choisir, sinus ou cosinus ou autre ?

Merci d'excuser mon vocabulaire de profane mais je suis tr�s loin de mon
domaine de comp�tence.
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-�tre ]

Samuel Devulder

unread,
Jan 10, 2010, 10:50:24 AM1/10/10
to
Doug713705 a �crit :

> Samuel Devulder a expliqu� qu' il faillait "5 p�riodes � 4.5khz pour
> un bit � 0 et 7 p�riodes � 6.3khz pour un bit � 1".
>
> Je n'ai pas de comp�tences particuli�re en electronique mais j'ai pu
> trouver sur le net que T=1/f.

Oui p�riode =definition= inverse de la fr�quence.

> Pour 6300 hz cela nous donne donc 0.15873015873015872 * 7 = 1.1111... ms
> quand pour 4500 hz cela donne 0.2222222222222222 * 5 = 1.1111... ms.


Oui cela fait qu'un bit repr�sente la m�me dur�e qu'il soit 0 ou 1. La
vitesse de transmission totale est donc de 1/1.1111ms = 900bits/secs.

Par contre, pour un reproduction il faut au minimum 2 �chantillons par
p�riode (th. de shannon), donc il faut produire le son � minimum de
2*6.3Khz. Dans la pratique il faut prendre beaucoup plus. Le plus simple
est de produire un fichier wav � 44.1Khz (44100 �chantillons /
secondes), ce qui fait qu'un bit 1 (c'est la freq max) contient
exactement 7 echantillons, et un bit 0 (frequence min) contient 9.8
echantillons. On est largement au dessus du crit�re de shannon: ca
devrait marcher impec.

L'avantage du 44.1Khz est que ca colle pile poil avec un travail en pas
discrets:
bit0=5 p�riodes qui font: 49 �chantillons � 44.1Khz
bit1=7 p�riodes qui font: 49 �chantillons � 44.1Khz

Ensuite pour la forme d'onde, je n'ai pas de quoi v�rifier, mais
supposons que ce soit une sinuso�de bien classique (il suffit de changer
le pr�calc pour les autres formes d'ondes).

Du coup l'algo est tout b�te: on pr�calcule 2 s�rie de 49 �chantillons
p�riodiques, repr�sentant pour l'un 5 p�riodes d'une sinuso�de, et pour
l'autre 7 p�riodes. Ensuite on lit le fichier binaire bit � bit, et on
recopie les 49 �chnatillons repr�sentant le bit consid�r�.

A la grosse louche (je suis rouill�), en pseudo perl le code pour
produire un fichier PCM ressemblerait �:
# pr�calc
@bit0 = @bit1 = ();
$two_pi = 2*3.14159;
for($i=0;$i<49;++$i) {$bit0[$i] = 127*(1+sin(5*$two_pi*$i/49));}
for($i=0;$i<49;++$i) {$bit1[$i] = 127*(1+sin(7*$two_pi*$i/49));}

# lecture du fichier K7:
IN = open("fichier.k7","rb");
read(STDIN, $tmp, 100000); # hum pas beau cette limite � 100000
@K7 = unpack('C*', $tmp); # conversion caract�re->nombre
close(IN);

# Cr�ation du fichier wav (l'en-tete d�pend de la taille)
OUT = open("fichier.wav","wb");
&ecrire_entete_PCM(OUT, 1+$#K7);
# remplissage de la partie "data" du format
foreach $octet (@K7) {
for($i=0; $i<7; ++$i) {
&sortir_PCM(OUT, ($octet & 128) != 0 ? @bit1 : @bit0);
$octet <<= 1;
}
}
&fin_fichier_PCM(OUT);
close(OUT);

Les d�tails du format PCM sont ici:
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Les tableaux bit0/bit1 sont pr�calcul�s pour 44.1khz, et un format audio
8bits non sign�s.

sam.

Samuel Devulder

unread,
Jan 10, 2010, 11:12:11 AM1/10/10
to
Samuel Devulder a �crit :

> Ensuite pour la forme d'onde, je n'ai pas de quoi v�rifier, mais
> supposons que ce soit une sinuso�de bien classique (il suffit de changer
> le pr�calc pour les autres formes d'ondes).

La lecture du manuel tehnique du TO7
(http://dcmoto.free.fr/onlinedoc/manueltechniqueto7/manueltechniqueto7.djvu)

Semble indiquer que le TO sort un signal carr�, mais qu'il est par la
suite filtr�.. Je pense qu'il faut tester si la sinusoide passe ou pas,
si elle passe pas, il faut utiliser un creneau.

> # pr�calc
> @bit0 = @bit1 = ();
> $two_pi = 2*3.14159;

> for($i=0;$i<49;++$i) {$bit0[$i] = 127*(1+&f_onde(5*$two_pi*$i/49));}
> for($i=0;$i<49;++$i) {$bit1[$i] = 127*(1+&f_onde(7*$two_pi*$i/49));}

sub f_onde {
my($t) = @_;
$t = sin($t);
$t = $t<0 ? -1 : 1
if 1; # mettre 0 pour sinusoide
return $t;
}

moi-meme

unread,
Jan 10, 2010, 2:19:11 PM1/10/10
to
Le Sun, 10 Jan 2010 17:12:11 +0100, Samuel Devulder a écrit :

> Semble indiquer que le TO sort un signal carré, mais qu'il est par la
> suite filtré.. Je pense qu'il faut tester si la sinusoide passe ou pas,


> si elle passe pas, il faut utiliser un creneau.

je mets mon grain de sel :
quelques infos sur le circuit hard d'entrée du TO7 et sur les boucles
logicielles permettraient d'affiner.

Il y a sans doute un comparateur avec hystérésis en entrée pour retrouver
du carré.

Ensuite comment se fait la détection d'un 0 ou d'un 1 ?
AMHA c'est pas la durée en sortie du comparateur.
plutôt la mesure du temps entre deux fronts montants par une boucle
logicielle.Une IT cyclique vu la vitesse du processeur me paraît utopique.


J'arrête là ma digression : il y a sans doute des connaisseurs du hard
sur ce forum qui répondront mieux que moi.

Samuel Devulder

unread,
Jan 10, 2010, 3:46:57 PM1/10/10
to
moi-meme a écrit :

> Le Sun, 10 Jan 2010 17:12:11 +0100, Samuel Devulder a écrit :
>
>> Semble indiquer que le TO sort un signal carré, mais qu'il est par la
>> suite filtré.. Je pense qu'il faut tester si la sinusoide passe ou pas,
>> si elle passe pas, il faut utiliser un creneau.
>
> je mets mon grain de sel :
> quelques infos sur le circuit hard d'entrée du TO7 et sur les boucles
> logicielles permettraient d'affiner.
>
> Il y a sans doute un comparateur avec hystérésis en entrée pour retrouver
> du carré.
>
> Ensuite comment se fait la détection d'un 0 ou d'un 1 ?
> AMHA c'est pas la durée en sortie du comparateur.
> plutôt la mesure du temps entre deux fronts montants par une boucle
> logicielle.Une IT cyclique vu la vitesse du processeur me paraît utopique.

Contrairement à la gamme MO, sur le TO7 c'est le lecteur de cassette lui
même qui contient la logique de détection des 0/1. C'est pour cela que
ces lecteurs étaient d'ailleurs relativement cher. Sur les MO le
décodage était fait de façon purement logiciel permettant de réaliser
des speed-loaders. Rien de tel sur TO (dommage parce que 900bauds c'est
lent: 20mins pour 100Ko.. booooooouuuuu).

Après, sur les détails de l'implémentation, les docs ici:
http://dcmoto.free.fr/onlinedoc/mk90-090/mk90-090.djvu
http://dcmoto.free.fr/onlinedoc/mk97-070/mk97-070.djvu
sont d'aucun interret.

En revanche sur:
http://ct.fournier-family.com/docs/technique/url.php?url=mk90090.zip&t_url=Magneto%20K7%20TO%20MK%2090-090
http://ct.fournier-family.com/docs/technique/url.php?url=mk97070.zip&t_url=Magneto%20K7%20TO7%20MK%2097-070

On peut y trouver un synoptique très instructif (vraiment chouette les
manuels ayant des schema de principe de l'electronique. Encore un truc
qui a disparu avec la modernité).

On voit que le signal attendu par le lecteur est un alternances de
plusieurs périodes (d'allure sinusoïdale d'ailleurs) sans décalage de
phase. A noter: en sortie sur la bande c'est un signal carré qui est envoyé.

Le signal est d'abord amplifié par deux transistors, et écrêté par un
3eme (donc carré ou sinusoidale, ils ont la même allure après cela). Il
passe ensuite dans deux filtres sélectifs accordés à 4.5 et 6.3khz
respectivement. L'enveloppe de chacune des porteuses est alors détecté
(on dirait un détecteur d'enveloppe classique mais c'est pas exactement
cela), et envoyé dans un comparateur qui sort 0 ou 1 suivant la porteuse
qui contient "du signal".

C'est marrant car ça veut dire qu'on doit pouvoir mixer les data
numériques avec celles analogiques sans que cela dérange. Mais bon pas
de chance, les freqs à exclure (autour de 4khz, et autour de 6khz)
laissent assez peu de place pour des sons analogiques intéressants (sauf
pour écouter des sons de tenor bien graves). Les ingénieurs Thomson ont
du s'en apercevoir car en fait ils ont envoyés la 2eme piste audio
directement vers le TO7 qui lui même l'envoie sur la péritel.

Autre curiosité: que se passe t'il si on enregistre sur la piste un
signal ayant les deux porteuses? Je ne comprends pas bien ce que la doc
indique "A la coupure des deux enveloppe en opposition de phase". C'est
quoi cette coupure? Si ca se trouve ca dépend de l'intensité relative du
signal à 4.5 vs celui à 6.3. Bon c'est un détail pas bien important.

Plus génant par rapport à mon code: il semblerait que l'encodage soit
LSB: START (qui n'existe pas), puis b0, puis b1, .. etc b7, STOP
(inexistant). Il faut donc revoir le pseudocode:

foreach $octet (@K7) {
for($i=0; $i<7; ++$i) {

&sortir_PCM(OUT, ($octet & 1) != 0 ? @bit1 : @bit0);
$octet >>= 1;
}
}

Sans start ni stop bit, les erreurs de lecture devaient faire du dégats
(mais bon ajouter des bits en + allait encore réduire la bande passante
déjà faible). Mais il me semble que l'encodage des blocs logiques sur K7
thomson inclue un CRC au minimum tous les 256 octets. Ca n'empêche pas
les I/O errors, loin de là hélas!

sam.

Samuel Devulder

unread,
Jan 10, 2010, 3:49:18 PM1/10/10
to
Samuel Devulder a écrit :

> foreach $octet (@K7) {
> for($i=0; $i<7; ++$i) {

lire:
for($i=0; $i<8; ++$i) {

sam (<=== il sait plus compter!)

GzavSnap

unread,
Jan 11, 2010, 11:09:31 AM1/11/10
to
Salut Doug,

| J'ai salement cod� un sorte de k7towav pour le TO7 (c'est plus un moche
| bricolage amateur en python bien crado suivi d'un script bash qu'un
| v�ritable programme) mais n'ayant pas le TO7 sous la main je peux pas
| le tester pour le moment.
|
| Toutefois, � l'oreille, on retrouve bien les m�lodies d'antan ;-)

J'ai travaill� sur le TO7/70 pour le site "l'Hebdogiciel, les listings."
Autant, que ca te profite.
Dans le Zip: <http://dskcenter.free.fr/TO7/KIT_TO7.zip>
Tu trouveras un exemple de fichier K7, un wav cr�� par Mess, un tuto pour la
conversion TXT vers K7 et un exemple de code pour du VB.

Oui, tout les exemples que je vais te donner sont en VB...
Tu pourras aussi regarder les codes de "SC3K tape converter"
(http://dskcenter.free.fr/sc-3000/) et "ZxSpecTape"
(http://dskcenter.free.fr/zxtools.html).
Ces deux programmes sont des "Wav" vers des "K7", mais on des routines de
reconstruction Wav.

| - Si oui, connaissez vous un g�n�rateur de tonalit�s attaquable en
| ligne de commande ayant une pr�cision suffisante ou mieux
| quelque chose �quivalent utilisable en python (snack ne s'installe pas
| chez moi) ?

Pour "Sc3k tape converter" j'ai travaill� sur des fichiers de streeming sur
http://www.sc-3000.com
Je ne me souviens plus du nom ... "Flash steeming"...?
Sinon, il y a le "Tzx", mais l�, aucun programme d'�mulation ne l'utilise.


| Par ailleurs, la "forme d'onde" � t-elle une importance ?
| - Si oui, laquelle choisir, sinus ou cosinus ou autre ?

Sinus=cosinus en mati�re de forme d'harmonique.
Le signal est invers� et cela peu poser des probl�mes en cosinus.

Dans l'urgence, et pour tester/r�cuperer de "bonnes" harmoniques pour la
conversion, on peut utiliser "Mess" car son seul format de sortie est le
"WAV".

De plus, la l�gende veut que les signeaux du lecteur de cassette du To7 sont
en num�rique!
C'est vaix pour la sortie du lecteur vers la carte m�re... mais, � la base,
le support K7 n'est pas num�rique � proprement parl�.
Le signal peut �tre en Sinus ou en cr�neaux. Mais, le signal en sinus �vite
l'effet m�moire et de lissage magn�tique du syst�me de lecture et �vite des
probl�mes des saturations. En deux mots, une transition trop brutale du
signal peut provoquer les rebonds et des harmoniques parasites en amont du
lecteur.
De toute fa�on, il y a toujours un lissage RL d� � l'inductance de la bobine
de la t�te de lecture ou d'�criture (ou � la r�manence magn�tique r�siduelle
des t�te!).
Donc, un signal triangle peut aussi faire l'affaire...

Xav.


Doug713705

unread,
Jan 12, 2010, 6:32:22 PM1/12/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

>> Pour 6300 hz cela nous donne donc 0.15873015873015872 * 7 = 1.1111... ms
>> quand pour 4500 hz cela donne 0.2222222222222222 * 5 = 1.1111... ms.
>
>
> Oui cela fait qu'un bit repr�sente la m�me dur�e qu'il soit 0 ou 1. La
> vitesse de transmission totale est donc de 1/1.1111ms = 900bits/secs.
>
> Par contre, pour un reproduction il faut au minimum 2 �chantillons par
> p�riode (th. de shannon), donc il faut produire le son � minimum de
> 2*6.3Khz. Dans la pratique il faut prendre beaucoup plus. Le plus simple
> est de produire un fichier wav � 44.1Khz (44100 �chantillons /
> secondes), ce qui fait qu'un bit 1 (c'est la freq max) contient
> exactement 7 echantillons, et un bit 0 (frequence min) contient 9.8
> echantillons. On est largement au dessus du crit�re de shannon: ca
> devrait marcher impec.
>
> L'avantage du 44.1Khz est que ca colle pile poil avec un travail en pas
> discrets:
> bit0=5 p�riodes qui font: 49 �chantillons � 44.1Khz
> bit1=7 p�riodes qui font: 49 �chantillons � 44.1Khz
>
> Ensuite pour la forme d'onde, je n'ai pas de quoi v�rifier, mais
> supposons que ce soit une sinuso�de bien classique (il suffit de changer
> le pr�calc pour les autres formes d'ondes).
>
> Du coup l'algo est tout b�te: on pr�calcule 2 s�rie de 49 �chantillons
> p�riodiques, repr�sentant pour l'un 5 p�riodes d'une sinuso�de, et pour
> l'autre 7 p�riodes. Ensuite on lit le fichier binaire bit � bit, et on
> recopie les 49 �chnatillons repr�sentant le bit consid�r�.

Merci pour les infos, gr�ce � toi il me semble que mon programme
fonctionne, c'est un petit script en python (tu sais moi les
hi�roglyphes du perl... ;-) ) qui est disponible ici :
http://doug.letough.free.fr/to7/

Vous y trouverez �galement un fichier .k7 (arkanoid) et le fichier wav
correspondant g�n�r� par ce fameux script.

N'ayant pas le TO7 sous la main, je n'ai pu que faire quelques tests
th�oriques :
- chronom�trage d'un bit avec audacity
- Mesure des fr�quences en sortie de carte son sur un
oscilloscope avec xoscope.

Si quelqu'un dispose d'assez de temps pour tester ce prgramme...

Merci � vous tous, je me suis bien amus� � �crire ce script.
Prochaine �tape : Essai grandeur nature !

ols

unread,
Jan 13, 2010, 1:58:57 AM1/13/10
to
Doug713705 a �crit :

>> Par contre, pour un reproduction il faut au minimum 2 �chantillons par
>> p�riode (th. de shannon), donc il faut produire le son � minimum de
>> 2*6.3Khz.

Ah Shannon, mon grand copain des ann�es "�lectronique" :-)) Nous avons
suivi les m�mes �tudes, moi sur le banc et lui sur le tableau!
Souvenirs souvenirs....

Ols

Samuel Devulder

unread,
Jan 13, 2010, 2:10:56 AM1/13/10
to
Doug713705 a �crit :

> Merci pour les infos, gr�ce � toi il me semble que mon programme
> fonctionne, c'est un petit script en python (tu sais moi les
> hi�roglyphes du perl... ;-) ) qui est disponible ici :
> http://doug.letough.free.fr/to7/

Ah oui j'aurais pu �crire du pseudo python. J'ai confondu. Je pensais
que c'etait en perl que tu avais fait tes 1er essais.

>
> Vous y trouverez �galement un fichier .k7 (arkanoid) et le fichier wav
> correspondant g�n�r� par ce fameux script.

Est-ce que le wav moulin� par wav2k7 donne le m�me contenu que le .k7
d'origine?

Sinon a l'oreille ca ressemble � du thomson. Par contre je n'ai rien
pour tester ton prog. Le mieux serait que tu postes un petit message sur
http://www.logicielsmoto.com/phpBB/index.php
O� tu aura plus de chance de tomber sur quelqu'un ayant un TO sous la main.

sam.

Samuel Devulder

unread,
Jan 13, 2010, 2:18:50 AM1/13/10
to
Doug713705 a �crit :

> Merci pour les infos, gr�ce � toi il me semble que mon programme
> fonctionne, c'est un petit script en python (tu sais moi les
> hi�roglyphes du perl... ;-) ) qui est disponible ici :
> http://doug.letough.free.fr/to7/

bbyte = bstr(ord(c))
bitnum=bitnum+1
for bit in bbyte :
...

Heu, il me semble que dans ce cas tu sort les bits avec le bit de poids
fort en t�te. Or dans l'une des docs que j'ai lu, un sch�ma d'�criture
sur la bande contenait b0 puis b1 puis b2.. etc. Du coup je me demande
si tu ne doit pas inverser les elements de "bbyte" ou red�finir bstr ainsi:
# Return the byte as a list of bits (lsb first)
def bstr(n):
return ''.join([str(n >> x & 1) for x in (0,1,2,3,4,5,6,7)])


sam.

Thierry Sundgau [nntp]

unread,
Jan 13, 2010, 1:59:57 PM1/13/10
to

"Doug713705" <doug.l...@free.fr> a �crit dans le message de news: hij0q6$25mq$1...@talisker.lacave.net...

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
> Si quelqu'un dispose d'assez de temps pour tester ce prgramme...
>
Je vais tacher de trouver le temps de tester ce week end.

( en vue de sauvegarde, j'ai grav� certaines de mes cassettes physiques sur CD AUDIO )
et j'ai demont� (� cause du cable) le couvercle de mon magn�to TO7 pour acceuillir
mon adaptateur BF jack3.5 -> K7 sur lequel est maintenant d�di� mon 'ancien' baladeur CD


Samuel Devulder

unread,
Jan 13, 2010, 4:39:45 PM1/13/10
to
Thierry Sundgau [nntp] a �crit :

> "Doug713705" <doug.l...@free.fr> a �crit dans le message de news: hij0q6$25mq$1...@talisker.lacave.net...
>> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>> Si quelqu'un dispose d'assez de temps pour tester ce prgramme...
>>
> Je vais tacher de trouver le temps de tester ce week end.
>
> ( en vue de sauvegarde, j'ai grav� certaines de mes cassettes physiques sur CD AUDIO )

C'est pas une mauvaise id�e du tout.. J'ai "backup�" mes vieilles D7
perso TO9 en fichier SAP, mais j'ai pas pens� � backuper les K7 des TO7
et TO7/70, et c'est bien dommage car je dois y trouver un certain nombre
de progs "vintage" perso (enfin recopi�s/adapt�s de SVM-micro,
Heebdogiiciel et autre bricolages en tout genres). A tous les coup il y
a des tr�sors oubli�s sur ces K7...

sam (rahhh nostalgie)

Doug713705

unread,
Jan 13, 2010, 4:41:03 PM1/13/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> bbyte = bstr(ord(c))


> bitnum=bitnum+1
> for bit in bbyte :
> ...
>
> Heu, il me semble que dans ce cas tu sort les bits avec le bit de poids
> fort en t�te. Or dans l'une des docs que j'ai lu, un sch�ma d'�criture
> sur la bande contenait b0 puis b1 puis b2.. etc. Du coup je me demande
> si tu ne doit pas inverser les elements de "bbyte" ou red�finir bstr ainsi:
> # Return the byte as a list of bits (lsb first)
> def bstr(n):
> return ''.join([str(n >> x & 1) for x in (0,1,2,3,4,5,6,7)])

J'avoue avoir honteusement repomp� ce bout de code sans m�me chercher �
l'analyser, je me suis arreter au fait qu'il renvoyait bien des 1 et des
0 ! :-o

De la m�me mani�re, si tu me dis qu'il faut inverser l'ordre des bits,
je te fait confiance sur parole :-D

Le source a donc �t� modifi� en cons�quences.

Doug713705

unread,
Jan 13, 2010, 6:46:46 PM1/13/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> Heu, il me semble que dans ce cas tu sort les bits avec le bit de poids
> fort en t�te

Je n'ai pas retrouv� d'information disant le contraire mais en
parcourant l'incroyable� manuel du TO7/70, j'y ai trouv� une explication
sur la conversion en binaire.

L'exemple cit� dans le manuel semble indiquer le bit de poids fort en
t�te (� gauche dans le sens de lecture) mais cela ne prouve rien en
soit.

Tout � fait autre chose :
Combien de broches la prise DIN reliant le magn�tophone au TO7/70
comporte t-elle ? 4 ?

� Incroyable la foultitude de renseignements que l'on trouve dans ce
manuel, �a va de l'electronique � la programmation ! C'est beau et quand
on voit les manuels de certains constructeurs modernes, on se dit qu'ils
pourraient en prendre de la graine.

Samuel Devulder

unread,
Jan 14, 2010, 1:58:13 AM1/14/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>
>> Heu, il me semble que dans ce cas tu sort les bits avec le bit de poids
>> fort en t�te
>
> Je n'ai pas retrouv� d'information disant le contraire mais en
> parcourant l'incroyable� manuel du TO7/70, j'y ai trouv� une explication
> sur la conversion en binaire.

C'est sur la page 5 du PDF:
http://ct.fournier-family.com/docs/technique/url.php?url=mk97070.zip&t_url=Magneto%20K7%20TO7%20MK%2097-070

Il est m�me pr�cis�: "l'octet a transmettre est pr�c�d� d'un bit de
start (niveau 0) et est suivi de deux bits de stop (niveau 1)" (tiens
j'avais loup� ca dans ma lecture pr�c�dente, en pensant m�me qu'il n'y
avait pas ces marqueurs... pfff... j'me fait trop vieux).

> L'exemple cit� dans le manuel semble indiquer le bit de poids fort en
> t�te (� gauche dans le sens de lecture) mais cela ne prouve rien en
> soit.

Il est possible que les docs soient contradictoires les unes par rapport
aux autres sur un tel d�tail. Pour vraiment savoir dans quel ordre sont
les bits, il faudrait regarder le code source de wav2k7, mais je ne l'ai
pas fait.

>
> Tout � fait autre chose :
> Combien de broches la prise DIN reliant le magn�tophone au TO7/70
> comporte t-elle ? 4 ?

Sur la page 7 du m�me document on voit la prise avec 5 broches (commande
moteur, sortie num�rique, sortie audio, entr�e num�rique, masse).

sam.

Doug713705

unread,
Jan 14, 2010, 5:25:34 AM1/14/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

>> Je n'ai pas retrouv� d'information disant le contraire mais en


>> parcourant l'incroyable� manuel du TO7/70, j'y ai trouv� une explication
>> sur la conversion en binaire.
>
> C'est sur la page 5 du PDF:
> http://ct.fournier-family.com/docs/technique/url.php?url=mk97070.zip&t_url=Magneto%20K7%20TO7%20MK%2097-070

Merci, je n'arrivais pas � mettre la main sur ce document !

Par contre mon code ne prend ni en compte le bit de d�part ni le bit
de stop et si je comprends bien il faut intercaler un bit � 0 avant
chaque octet et 2 bits de stop � 1 apr�s chaque octet.

Y'a encore du pain sur la planche ;-)

Samuel Devulder

unread,
Jan 14, 2010, 5:55:03 AM1/14/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>
>>> Je n'ai pas retrouv� d'information disant le contraire mais en
>>> parcourant l'incroyable� manuel du TO7/70, j'y ai trouv� une explication
>>> sur la conversion en binaire.
>> C'est sur la page 5 du PDF:
>> http://ct.fournier-family.com/docs/technique/url.php?url=mk97070.zip&t_url=Magneto%20K7%20TO7%20MK%2097-070
>
> Merci, je n'arrivais pas � mettre la main sur ce document !
>
> Par contre mon code ne prend ni en compte le bit de d�part ni le bit
> de stop et si je comprends bien il faut intercaler un bit � 0 avant
> chaque octet et 2 bits de stop � 1 apr�s chaque octet.

En tout cas c'est ce que le TO envoie vers le lecteur de K7. Ensuite le
synoptique indique que c'est �crit a peu pr�s "tel quel" sur la K7
(note: les bits sont modul�s logiciellement sur le TO pour l'�criture en
changeant les param�tres et le mode de fonctionnement du timer).

>
> Y'a encore du pain sur la planche ;-)
>

Ouais.. Mais bon ca converge... :) Le truc chiant c'est qu'il t'es
impossible de tester le WAV produit pour �tre sur que c'est bon.. Mais
quelqu'un sur le forum a parl� de MESS. Voici les liens:

http://www.di.ens.fr/~mine/mess/to7.html.fr
http://www.mess.org/download.php

Dans mess on peut lire/ecrire des WAV au format thomson. Ca peut aider
pour la mise au point.

Autre truc: le script python est pas tr�s rapide. Je pense qu'on peut
gagner en utilisant
wav.writeframesraw()
(la mise � jour de l'en-tete wav se faisant au moment du close()).
On peut aussi pr�calculer un jeu de 256 chaines de caract�res encodant
les octets que l'on ecrit avec un seul writeframesraw(). A tester.

sam.

Doug713705

unread,
Jan 14, 2010, 3:32:14 PM1/14/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

>>

>> Y'a encore du pain sur la planche ;-)
>>
>
> Ouais.. Mais bon ca converge... :) Le truc chiant c'est qu'il t'es
> impossible de tester le WAV produit pour �tre sur que c'est bon.. Mais
> quelqu'un sur le forum a parl� de MESS. Voici les liens:
>
> http://www.di.ens.fr/~mine/mess/to7.html.fr
> http://www.mess.org/download.php

Fraichement install� ;-)

> Dans mess on peut lire/ecrire des WAV au format thomson. Ca peut aider
> pour la mise au point.

"Pour l'instant, pr�f�rez le format pr�-trait� .k7 au format .wav. En
effet la d�modulation (effectu�e au niveau mat�riel sur le TO7) n'est
pas encore bien �mul�e (sauf dans le cas d'un signal tr�s propre, comme
celui qui est calcul� par l'�mulateur pendant l'enregistrement sur
cassette). "

GASP ! On va consid�rer que le signal est "tr�s propre" :-)

> Autre truc: le script python est pas tr�s rapide.

Monsieur devient exigeant :-D

>Je pense qu'on peut gagner en utilisant wav.writeframesraw()
> (la mise � jour de l'en-tete wav se faisant au moment du close()).
> On peut aussi pr�calculer un jeu de 256 chaines de caract�res encodant
> les octets que l'on ecrit avec un seul writeframesraw(). A tester.

A voir donc.

Samuel Devulder

unread,
Jan 14, 2010, 5:52:32 PM1/14/10
to
Doug713705 a �crit :

> "Pour l'instant, pr�f�rez le format pr�-trait� .k7 au format .wav. En
> effet la d�modulation (effectu�e au niveau mat�riel sur le TO7) n'est
> pas encore bien �mul�e (sauf dans le cas d'un signal tr�s propre, comme
> celui qui est calcul� par l'�mulateur pendant l'enregistrement sur
> cassette). "
>
> GASP ! On va consid�rer que le signal est "tr�s propre" :-)

Le bon cot� est que si le WAV produit par les scripts python passe dans
MESS il devrait passer partout!

>
>> Autre truc: le script python est pas tr�s rapide.
>
> Monsieur devient exigeant :-D

Surtout quand c'est pas mon code ;-)

sam.

GzavSnap

unread,
Jan 15, 2010, 9:11:52 AM1/15/10
to

Samuel Devulder

unread,
Jan 15, 2010, 10:21:37 AM1/15/10
to
GzavSnap a �crit :
> <http://dskcenter.free.fr/cassettes>
>
>
>
Bizzare, le son TO7 ne sonne pas comme je l'entends d'habitude... La
structure me semble bonne, mais le son un peu trop grave (il manque des
hautes fr�quences).. C'est peut-�tre la diff�rence entre un signal carr�
et sinusoidal. Sur un carr� (tel qu'�crit par le TO) les harmoniques
sont plus nombreuses. Je me demande d'o� est sortir cet extrait wav.

Sinon ici il y a d'autres son TO7 (qui sonne plus "vrai" � mes zoreils):
http://mercenarysite.free.fr/oric/tap_inconnu.zip
http://dcmoto.free.fr/programmes/c/32/cyberlab-to7mp3.zip

(Au passage, l� un son MO5:
http://dcmoto.free.fr/programmes/v/02/vampire-mo5wav.zip )

Dans ta nomenclature, qu'entends (h�h�!) tu par "multi-bloc avec entete"
ainsi que signal "sym�trique" ?

sam.

Doug713705

unread,
Jan 15, 2010, 4:00:33 PM1/15/10
to
Dans fr.comp.ordinosaures Thierry Sundgau [nntp] nous expliquait:

>> Si quelqu'un dispose d'assez de temps pour tester ce prgramme...
>>
> Je vais tacher de trouver le temps de tester ce week end.

La derni�re version est en ligne ici :
http://doug.letough.free.fr/to7/

Elle prend en compte les bits de d�part et d'arr�t et utilise
wave.writeframesraw() qui en effet est _beaucoup_ plus rapide.

Doug713705

unread,
Jan 15, 2010, 5:28:51 PM1/15/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> Le bon cot� est que si le WAV produit par les scripts python passe dans

> MESS il devrait passer partout!

L'�tat actuel des choses :

- Fichier arkanoid.k7 test� Ok
- Traitement arkanoid.k7 > arkanoid.wav (avec bits de d�part et d'arr�t)

- Lancement de mess avec la commande :
mess to770 -cart ./.mess/cart/basic.m7 -cass ./.mess/k7/arkanoid.wav

- La commande run"" (qui sur le fichier k7 affiche searching puis FOUND
arkanoid.bas et le charge) affiche searching puis FOUND arkanoid.bas et
plante sur une une IO ERROR en cours de chargement.

- En relan�ant la m�me commande run""
dans la foul�e, le TO7/70 affiche searching puis FOUND arkanoid.bin et
plante sur une FM ERROR en cours de chargement.

A noter que :
- le support du wav n'est que partiellement support� par l'�mulateur en
stipulant que seuls les wav cr��s par l'�mulateur sont susceptibles
d'�tre charg� correctement.
- Le signal envoy� n'est pas "carr�" comme semblerait l'enregistrer le
magn�to.
- Sans bit de d�part/arr�t, la commande run"" affiche
searching... et tourne sans rien trouver (logique).

Samuel Devulder

unread,
Jan 15, 2010, 7:11:16 PM1/15/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Thierry Sundgau [nntp] nous expliquait:
>
>>> Si quelqu'un dispose d'assez de temps pour tester ce prgramme...
>>>
>> Je vais tacher de trouver le temps de tester ce week end.
>
> La derni�re version est en ligne ici :
> http://doug.letough.free.fr/to7/
>
> Elle prend en compte les bits de d�part et d'arr�t et utilise
> wave.writeframesraw() qui en effet est _beaucoup_ plus rapide.


J'ai test� le d�codage avec le wav2k7 d'ici:
http://nostalgies.thomsonistes.org/archives/k7tools-2.1a-dosexe.zip

H�las, le arkanoid.wav ne semble pas �tre reconnu et produit un
arkanoid.k7 de 0octets!

En fait j'ai regard� un wav sous audacity et regard� ce qu'il g�n�re. Je
trouve que ca ne colle pas. Typiquement les �chantillons sont
bizzarement calcul�s. Du coup J'ai modifi� ton script pour rendre plsu
explicite les calculs d'echantillons. J'en ai profit� pour accelerer le
tout nettement en pr�calculant une chaine de caracteres pour les bit0 et
bit1. J'ai fait en sorte que le volume du bit 0 et du bit 1 ne soient
pas les m�me de sorte qu'avec un afficheur de courbre (audacity) on lise
directement les bits sans avoir � compter les p�riode.

Le code est accessible sur: http://pastebin.com/f79619a11
(j'esp�re qu'il y restera un certain temps).

J'ai test� sur arkanoid, le wav produit redonne bien le fichier k7
d'origine.

Tout devrait �tre bon � pr�sent.

Si tu es ok, et si quelqu'un confirme que ca passe sur un vrai thomson,
j'aimerais mettre un msg sur logicielsmoto pour stocker le code ailleurs
pour ne pas le perdre (vu qu'on a un peu gal�r� pour trouver l'encodage).

sam.

Samuel Devulder

unread,
Jan 15, 2010, 7:32:33 PM1/15/10
to
Samuel Devulder a �crit :

> En fait j'ai regard� un wav sous audacity et regard� ce qu'il g�n�re. Je
> trouve que ca ne colle pas. Typiquement les �chantillons sont
> bizzarement calcul�s.

En fait non.. Les deux calculs sont �quivalents sauf que wav2k7 attends
du 8 bits.. c'est ca qui coince en fait!

Bon ma modif ne sert pas � grand chose sauf si tu veux un truc + rapide.

sam (il se fait trop tard pour avoir une pens�e lucide).

Doug713705

unread,
Jan 15, 2010, 7:41:24 PM1/15/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> En fait j'ai regard� un wav sous audacity et regard� ce qu'il g�n�re. Je

> trouve que ca ne colle pas. Typiquement les �chantillons sont
> bizzarement calcul�s. Du coup J'ai modifi� ton script pour rendre plsu
> explicite les calculs d'echantillons.

Pour le coup j'ai juste pomp� le code et chang� les valeurs de
fr�quence !
A part les quelques boucles for...in.., il n'y pas grand chose qui
m'appartienne dans ce code ;-)

> J'en ai profit� pour accelerer le tout nettement en pr�calculant une
> chaine de caracteres pour les bit0 et bit1.

Ca c'est vu ;-) La diff�rence est flagrante.

> J'ai fait en sorte que le volume du bit 0 et du bit 1 ne soient
> pas les m�me de sorte qu'avec un afficheur de courbre (audacity) on lise
> directement les bits sans avoir � compter les p�riode.
>
> Le code est accessible sur: http://pastebin.com/f79619a11
> (j'esp�re qu'il y restera un certain temps).
>
> J'ai test� sur arkanoid, le wav produit redonne bien le fichier k7
> d'origine.
>
> Tout devrait �tre bon � pr�sent.

Je viens d'essayer dans mess, le resultat est toujours le m�me IO ERROR.
Il faut donc un teste sur un vrai TO7.
Th�oriquement je fais �a ce week-end (il faut encore que je trouve un
inverseur de genre peritel, un cable jack/DIN 5 broches et que mon
pote apporte son TO7 !)

> Si tu es ok, et si quelqu'un confirme que ca passe sur un vrai thomson,
> j'aimerais mettre un msg sur logicielsmoto pour stocker le code ailleurs
> pour ne pas le perdre (vu qu'on a un peu gal�r� pour trouver l'encodage).

Aucun probl�me pour moi d'autant que je n'ai pas fait grand chose sinon
copier/coller des bouts de code !

Samuel Devulder

unread,
Jan 16, 2010, 3:53:06 AM1/16/10
to
Doug713705 a �crit :

> Je viens d'essayer dans mess, le resultat est toujours le m�me IO ERROR.
> Il faut donc un teste sur un vrai TO7.

J'ai une id�e, si le fichier K7 contient 2 fichiers il peut y avoir un
soucis avec la conversion.

Sur un vrai TO, � la fin d'un fichier il y a un motor stop.. puis pour
le 2eme fichier un motoron. Ces arrets/d�marages du moteur introduisent
une certaine latence. L'absence de cette latence fait que sur un vrai TO
ou sur MESS, les 1er bits du 2eme fichier sont saut�s et donc il ne
trouve jammais ce 2eme fichier et cela se termine par une IO error. Il
faudrait introduire quelques secondes de silence entre chaque fichiers
dans le WAV.

La fin de fichier est pr�sent�e par un motif particulier, ca doit
pouvoir se d�tecter. A suivre...

sam.

Doug713705

unread,
Jan 16, 2010, 4:29:01 AM1/16/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> Sur un vrai TO, � la fin d'un fichier il y a un motor stop.. puis pour

> le 2eme fichier un motoron. Ces arrets/d�marages du moteur introduisent
> une certaine latence. L'absence de cette latence fait que sur un vrai TO
> ou sur MESS, les 1er bits du 2eme fichier sont saut�s et donc il ne
> trouve jammais ce 2eme fichier et cela se termine par une IO error. Il
> faudrait introduire quelques secondes de silence entre chaque fichiers
> dans le WAV.


J'ai lu sur le manuel du magnetophone qu'en l'absence de mot � envoyer,
la ligne de transmission �tait positionner � 1.

Par contre, comment d�tecter les la fin d'un fichier, myst�re mais je
suppose que le wav2k7 ne faisiat que retranscrire le signal audio bit �
bit (le contraire de ce que nous essayons de faire).

Finalement, je ne vois pas trop pourquoi cela poserait probl�me.

Par contre en ce qui concerne les cables de raccordement au TO7, l'id�e
que j'ai en t�te est la suivante :
- Brancher la sortie audio (jack) du PC � l'entr�e audio du TO7 (DIN 5),
par contre bien que disposant du schema de la prise DIN entr�e/sortie du
magn�tophone, je ne comprends pas vraiment comment fabriquer mon cable.

Sur la prise DIN 5 on a :
- Piste 1 : raccord vers TK03 avec d�rivation vers TK01 / TK02
- Piste 2 : masse
- Piste 3 : sortie audio
- Piste 4 : sortie digitale
- Piste 5 : entr�e digitale

Sur la prise jack on :
- Piste 1 : Sortie voie audio droite
- piste 2 : Sortie voie audio gauche


Je n'ai que de (tr�s) vagues notions d'�lectronique mais j'imagine bien
que l'une des 2 pistes de la prise jack doit �tre raccord�e � la piste
5 de la prise DIN mais o� raccorde t-on la voie restante ? sur le piste
1 vers le TK03 ?

Encore merci.

Doug713705

unread,
Jan 16, 2010, 6:40:48 AM1/16/10
to
Dans fr.comp.ordinosaures Doug713705 nous expliquait:

> Sur la prise DIN 5 on a :
> - Piste 1 : raccord vers TK03 avec d�rivation vers TK01 / TK02
> - Piste 2 : masse
> - Piste 3 : sortie audio
> - Piste 4 : sortie digitale
> - Piste 5 : entr�e digitale
>
> Sur la prise jack on :
> - Piste 1 : Sortie voie audio droite
> - piste 2 : Sortie voie audio gauche
>
>
> Je n'ai que de (tr�s) vagues notions d'�lectronique mais j'imagine bien
> que l'une des 2 pistes de la prise jack doit �tre raccord�e � la piste
> 5 de la prise DIN mais o� raccorde t-on la voie restante ? sur le piste
> 1 vers le TK03 ?

'y'a des fois comme �a o� je me demande comment j'arrive � r�fl�chir de
travers � ce point !

Ce qui n'emp�che pas que j'ai toujours une interrpgation :
- une des 2 'pistes' de la prise jack doit �tre connect�e � la broche 3
(audio output) quand l'autre sera connect�e � la broche 4 (digital
output) ? C'est bien �a ?

A savoir que je n'ai pas l'intention d'enregistrer quoique ce soit �
partir du TO7 et que je ne devrais donc pas avoir besoin de connecter
les sorties audio et digitale (broche 1 et 5).

Samuel Devulder

unread,
Jan 16, 2010, 7:05:31 AM1/16/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>
>> Sur un vrai TO, � la fin d'un fichier il y a un motor stop.. puis pour
>> le 2eme fichier un motoron. Ces arrets/d�marages du moteur introduisent
>> une certaine latence. L'absence de cette latence fait que sur un vrai TO
>> ou sur MESS, les 1er bits du 2eme fichier sont saut�s et donc il ne
>> trouve jammais ce 2eme fichier et cela se termine par une IO error. Il
>> faudrait introduire quelques secondes de silence entre chaque fichiers
>> dans le WAV.
>
>
> J'ai lu sur le manuel du magnetophone qu'en l'absence de mot � envoyer,
> la ligne de transmission �tait positionner � 1.
>
> Par contre, comment d�tecter les la fin d'un fichier, myst�re mais je
> suppose que le wav2k7 ne faisiat que retranscrire le signal audio bit �
> bit (le contraire de ce que nous essayons de faire).

Oui et il ignore les blancs entre bits (transmission asynchrone). Or
entre 2 fichiers le moteur s'arrete. Le monitor Thomson laisse un blanc
d'environ 3 sec d'apr�s la doc. Dans le fichier K7 ce blanc n'existe
pas. R�sultat quand on rentranscrit la k7 en wav et qu'on la relit avec
un moniteur non bidouill� (cas d'un vrai TO et de MESS), on mange
2-3secs en d�but de fichier. On loupe l'en-tete et on ne retrouve plus
les billes.

De m�me les fichiers binaires sont organis�s en blocs et il y a une
l�g�re temporisation entre les blocs pour laisser au TO le temps de
traiter le bloc. L'absence de cette tempo peut introduire des IO errors
car on loupe une partie d'un block de donn� et que le CRC devient faux.

Le format des blocs est indiqu� ici:
http://www.i-services.net/membres/forum/messages.php?uid=29603&sid=11289&idsujet=591147

Je pense qu'il ne doit pas �tre bien compliqu� de lire le fichier K7
block par block et de faire en sorte d'introduire un blanc de quelques
ms apr�s une fin de block data, et 3sec en fin de block "fichier".

>
> Finalement, je ne vois pas trop pourquoi cela poserait probl�me.

L'absence de tempo dans le WAV fait que probablement on mange le d�but
des blocks data. Le CRC de fin de bloc est alors faux donc IO error.

> Par contre en ce qui concerne les cables de raccordement au TO7, l'id�e
> que j'ai en t�te est la suivante :
> - Brancher la sortie audio (jack) du PC � l'entr�e audio du TO7 (DIN 5),
> par contre bien que disposant du schema de la prise DIN entr�e/sortie du
> magn�tophone, je ne comprends pas vraiment comment fabriquer mon cable.
>
> Sur la prise DIN 5 on a :
> - Piste 1 : raccord vers TK03 avec d�rivation vers TK01 / TK02
> - Piste 2 : masse
> - Piste 3 : sortie audio
> - Piste 4 : sortie digitale
> - Piste 5 : entr�e digitale
>
> Sur la prise jack on :
> - Piste 1 : Sortie voie audio droite
> - piste 2 : Sortie voie audio gauche
>
>
> Je n'ai que de (tr�s) vagues notions d'�lectronique mais j'imagine bien
> que l'une des 2 pistes de la prise jack doit �tre raccord�e � la piste
> 5 de la prise DIN mais o� raccorde t-on la voie restante ? sur le piste
> 1 vers le TK03 ?

L� j'avoue ne pas suivre facilement. Tu veux envoyer directement les
bits d�cod�s au TO via la fiche no 5? Dans ce cas pas besoin de wav, il
te suffit d'avoyer les bits sur la fiche 5. Il doit simplement suffire
de relier une sortie TTL du PC sur cette fiche 5 (port // ou s�rie.. pas
facile � trouver de nos jours), et d'envoyer les bits du fichier k7 sur
ce port s�rie. L'acia cot� TO croira que ce sont des bits d�cod�s par le
lecteur K7 et devrait �te leurr�.

Si tu veux laisser le lecteur K7 d�coder le wav, il faut sans doute
injecter la sortie audio du PC plus en amont dans le circuit,
probablement juste apr�s les tetes audios. Mais je ne sais pas trop si
les tensions/courants sont compatibles.

Le moins compliqu� est � mon avis d'aller regarder dans les bacs "solde"
pour y d�nicher une fausse k7 avec prise jack.

Par contre ces bricolages ne reglent pas le pb de temporisation entre
blocs et fichiers.

>
> Encore merci.

sam.

Doug713705

unread,
Jan 16, 2010, 7:19:58 AM1/16/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> Tu veux envoyer directement les bits d�cod�s au TO via la fiche no 5?

Ben oui, c'�tait mon id�e de d�part mais...

> Dans ce cas pas besoin de wav, il
> te suffit d'avoyer les bits sur la fiche 5.

Je viens de comprendre (a tort ou � raison) que c'est le magnetophone
qui d�code le wav, je pensais que c'�tait le TO7 !!

Samuel Devulder

unread,
Jan 16, 2010, 7:39:37 AM1/16/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>
>> Tu veux envoyer directement les bits d�cod�s au TO via la fiche no 5?
>
> Ben oui, c'�tait mon id�e de d�part mais...
>
>> Dans ce cas pas besoin de wav, il
>> te suffit d'avoyer les bits sur la fiche 5.
>
> Je viens de comprendre (a tort ou � raison) que c'est le magnetophone
> qui d�code le wav, je pensais que c'�tait le TO7 !!
>

Hihi non non, depuis de d�but j'avais indiqu� que contrairement aux
autres machines de l'epoque le magn�to K7 du TO est plus compliqu� car
c'est lui qui contient les circuits pour d�coder le signal K7. Ceci
devait expliquer aussi le prix de la bete par rapport aux autres
lecteurs K7 type MO dont la logique est beaucoup plus simple.

Le TO �coute son lecteur de K7 non pas via une liaison analogique (type
'jack'), mais avec une liaison num�rique au niveaux TTL. C'est un ACIA
(convertiseur s�rie->octets) qui recoit les bits d�cod�s en s�rie par le
lecteur k7 et les pr�sente sous forme d'octet dans le TO.

Par contre pour l'�criture, le TO communique de fa�on analogique et
envoie des signaux carr�s repr�sentant les 5 p�riodes � 4.5khz et les 7
p�riodes � 6.3khz.

L'histoire ne dit pas pourquoi une telle dissym�trie entre la lecture et
l'�criture sur TO.

Un truc curieux, c'est que d'une part un TO ne peut lire des cassettes
MO, mais que par contre il devrait �tre � m�me de pouvoir en �crire. Je
ne sais pas si l'exp�rience a �t� tent�e.

sam.

Doug713705

unread,
Jan 16, 2010, 9:11:47 AM1/16/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> Le TO �coute son lecteur de K7 non pas via une liaison analogique (type

> 'jack'), mais avec une liaison num�rique au niveaux TTL. C'est un ACIA
> (convertiseur s�rie->octets) qui recoit les bits d�cod�s en s�rie par le
> lecteur k7 et les pr�sente sous forme d'octet dans le TO.

Concr�tement, quel t�te a le signal �mis par le magnetophone et de quel
mani�re un tel signal peut �tre extrapol� d'un fichier k7 ?

Ne me dis pas qu'il faut simplement lire le fichier k7 et envoyer
b�tement les octets vers l'entr�e magneto du TO octets par octets !

Si c�tait le cas il ne resterait qu'� d�tecter les d�but et fin de
programmes dans le cas d'une k7 ayant plusieurs programmes enregistr�s.

Du coup j'en reviens � mes toutes premi�res questions :
- me faut-il un port s�rie pour relier le PC (ou autre) au TO ?
- Si oui, quelles broches relier vers les 5 broches du connecteur DIN ?
- Si non, par quel autre moyen pourrais t-on relier ces deux machines
(en gardant � l'esprit que l'id�al, mais on pourrait faire sans si pas
possible, serait que ce soit faisable avec un eeePC avec seulement de
l'USB et un TO7/70).

C'est compliqu� tout �a et j'ai un peu l'impression d'�tre parti dans
cette bataille la fleur au fusil et de me retrouver � court de munition
face � un adversaire particuli�rement r�calcitrant, mais �a m'amuse
beaucoup :-)

Samuel Devulder

unread,
Jan 16, 2010, 10:20:26 AM1/16/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>
>> Le TO �coute son lecteur de K7 non pas via une liaison analogique (type
>> 'jack'), mais avec une liaison num�rique au niveaux TTL. C'est un ACIA
>> (convertiseur s�rie->octets) qui recoit les bits d�cod�s en s�rie par le
>> lecteur k7 et les pr�sente sous forme d'octet dans le TO.
>
> Concr�tement, quel t�te a le signal �mis par le magnetophone et de quel
> mani�re un tel signal peut �tre extrapol� d'un fichier k7 ?

Sur la broche 5 ? Ben a priori c'est du 0->5v s�rie.. comme sur un port
s�rie. 1 start bit (0), 2 stop bits (1), pas de parit�, 900 bauds.

> Ne me dis pas qu'il faut simplement lire le fichier k7 et envoyer
> b�tement les octets vers l'entr�e magneto du TO octets par octets !

J'ai le sentiment que c'est ca. Par contre je n'ai pas entendu que
quelqu'un ait tent� la manip.

> Si c�tait le cas il ne resterait qu'� d�tecter les d�but et fin de
> programmes dans le cas d'une k7 ayant plusieurs programmes enregistr�s.

Oui.

> Du coup j'en reviens � mes toutes premi�res questions :
> - me faut-il un port s�rie pour relier le PC (ou autre) au TO ?

S�rie ou //, un truc qui sort tu ttl.

> - Si oui, quelles broches relier vers les 5 broches du connecteur DIN ?

l� je sais pas.. Relier une pinoche du port parallele � la num�ro 5 du
din et connecter les deux masses entre elles me semblent faire
l'affaire. Bon ensuite comme la vitesse de 900 bauds n'est pas support�e
en standard au niveau du PC, il faut aller logiciellement aller �crire
les bits un � un sur cette pinoche � la bonne vitesse. En th�orie c'est
pas compliqu� mais je n'ai jamais jou� avec cela

Pr�histo a fait un controleur permettant de transf�rer des fichiers
entre un PC et un TO par une liaison s�rie type RS232 (il faut le
boitier CC90-232 sur TO pour que ca marche). Le code source est dispo et
on peut s'en inspirer pour transf�rer d'un PC au TO via la liaison s�rie
du lecteur K7. Le site web correspondant:
http://www.pulsdemos.com/cc90.html

> - Si non, par quel autre moyen pourrais t-on relier ces deux machines
> (en gardant � l'esprit que l'id�al, mais on pourrait faire sans si pas
> possible, serait que ce soit faisable avec un eeePC avec seulement de
> l'USB et un TO7/70).

Moi je persiste � penser que le plus simple est la fausse k7 avec fil
jack. Pas besoin d'�lectronique, juste du logiciel, ca a plus de chance
de marcher (mais je ne suis pas un bricolo de l'�lectronique).

> C'est compliqu� tout �a et j'ai un peu l'impression d'�tre parti dans
> cette bataille la fleur au fusil et de me retrouver � court de munition
> face � un adversaire particuli�rement r�calcitrant, mais �a m'amuse
> beaucoup :-)

Oui mais l'adversaire est vieux, 25ans qu'il ne bouge plus, ca devrait
aider � le vaincre, non! A la limite je pense que si tu mail � pr�histo
de ma part (on se connait, j'ai particip� � la "space project d�mo") il
sera peut �tre interr�ss� par l'id�e d'utiliser l'ACIA du lecteur de K7
plut�t que celui du CC90-232.

sam.

Thierry Sundgau [nntp]

unread,
Jan 16, 2010, 8:05:15 PM1/16/10
to

"Samuel Devulder" <samuel-do...@geensys.com> a �crit dans le message de news: 4b51b38e$0$24811$426a...@news.free.fr...

> Hihi non non, depuis de d�but j'avais indiqu� que contrairement aux autres machines de l'epoque le magn�to K7 du TO est plus
> compliqu� car c'est lui qui contient les circuits pour d�coder le signal K7. Ceci devait expliquer aussi le prix de la bete par
> rapport aux autres lecteurs K7 type MO dont la logique est beaucoup plus simple.
>
> Le TO �coute son lecteur de K7 non pas via une liaison analogique (type 'jack'), mais avec une liaison num�rique au niveaux TTL.
> C'est un ACIA (convertiseur s�rie->octets) qui recoit les bits d�cod�s en s�rie par le lecteur k7 et les pr�sente sous forme
> d'octet dans le TO.
>
> Par contre pour l'�criture, le TO communique de fa�on analogique et envoie des signaux carr�s repr�sentant les 5 p�riodes � 4.5khz
> et les 7 p�riodes � 6.3khz.
>

h�h� oui en effet.... j'avais un soft � l'epoque qui permettait de capturer les pages minitel
TELETEO...
il �tait livr� sur disquette 5.25 .... et avec un cable din qui reliait le Minitel � la prise K7 du TO7
ca marchait bien....

et dans le cable, je crois me souvenir qu'il n'y avait aucune electronique d'adaption de signaux.

je vois la dans cette i/f K7 une certaine similitude avec notre minitel....

autre similitude, le TO7 integrait le jeu de caractere semi-graphique videotext... le meme que celui du minitel

Peut etre la une piste dans ta quete du POURQUOI .... ;-) si quelqu'un peut nous eclairer.

Thierry


Thierry Sundgau [nntp]

unread,
Jan 16, 2010, 8:20:48 PM1/16/10
to

"Doug713705" <doug.l...@free.fr> a �crit dans le message de news: hiqq73$67v$1...@talisker.lacave.net...

>
> - En relan�ant la m�me commande run""
> dans la foul�e, le TO7/70 affiche searching puis FOUND arkanoid.bin et
> plante sur une FM ERROR en cours de chargement.
>

FM ERROR que des souvenirs....
sur TO7 un .bin doit se charger et s'executer avec la commande
LOADM "",r

ou

LOADM
suivi une fois charg� de
EXEC

dans bon nombre de jeux tu avais en debut de bande un .BAS
qui ne faisait bien souvent rien d'autre qu'un LOADM"",R

ca permettait d'ecrire sur la boite qu'il suffisait de mettre en lecture et d'appuyer sur 2 depuis le menu du TO7/70

ce choix 2 si une disquette etait presente chargait le BASIC DOS 1.1 qui ensuite lancait un programme basic nomm� AUTO.BAT
si il n'y avait pas de BASIC DOS present sur la disquette ou si il n'y avait pas de disquette inserree ou encore si il n'y avait
pas le controleur floppy present... la main passait au lecteur de cassette et executait en transparent un equivalent de RUN "CASS:"
d'ou la presence quasi systematique d'un .BAS en debut de bande.

ARRRRHHH les joies du Microsoft BASIC DOS 1.1 et ses 10 ko de RAM bouff�es sur la RAM utilisateur
pour le plaisir de profiter de 160 ko par face avec le lecteur double face double densit�....

le lecteur de disquette 5;25 du TO7/70 .... un peripherique souvent oubli� sur les emulateurs...
mais je m'egare...

TS


Samuel Devulder

unread,
Jan 16, 2010, 8:31:05 PM1/16/10
to
Thierry Sundgau [nntp] a �crit :

> h�h� oui en effet.... j'avais un soft � l'epoque qui permettait de capturer les pages minitel
> TELETEO...

Arf.. j'aurais pas cru qu'un TO pouvait faire veiller[*] jusqu'� 2h du
mat'..

sam (ZZzzz....ZZZzzz....)
__________
[*] ou du moins poster � 2h du mat'.

G.T

unread,
Jan 17, 2010, 4:06:29 AM1/17/10
to
Salut,

> Peut etre la une piste dans ta quete du POURQUOI .... ;-) si quelqu'un
> peut nous eclairer.

Sauf erreur, la sortie modem du Minitel (le port s�rie sur DIN si tu
pr�f�res) �tait en TTL. Enfin, l'adaptation de niveau n'est pas exactement
un probl�me : pour du port s�rie RS-232, un bon vieux MAX232, ses 4 capas et
hop, c'est r�gl� :-)

a+,
--
G.T


Doug713705

unread,
Jan 17, 2010, 7:37:20 AM1/17/10
to
Dans fr.comp.ordinosaures Thierry Sundgau [nntp] nous expliquait:

>> - En relan�ant la m�me commande run""


>> dans la foul�e, le TO7/70 affiche searching puis FOUND arkanoid.bin et
>> plante sur une FM ERROR en cours de chargement.
>>
>
> FM ERROR que des souvenirs....
> sur TO7 un .bin doit se charger et s'executer avec la commande
> LOADM "",r
>
> ou
>
> LOADM
> suivi une fois charg� de
> EXEC

En effet, avec un LOADM"",,R, le chargement d'arkanoid.bas plante sur
une IO ERROR et en relan�ant LOADM"",,R le chargement reprend sur
arkanoid.bin et affiche tout un bazar � l'�cran (ce qui j'imagine aurait
du �tre le splash screen d'arkanoid) et continue le chargement.
Par contre le chargement ne s'interrompt pas et continue au del� de la
limite de la taille de la k7 !

J'ai essay� avec un signal sinusoidal comme avec un signal carr�, le
r�sultat est le m�me.

Ce qui m'�tonne tout de m�me est que le TO7 (mess) arrive � lire le noms
des fichiers qui sont sur la k7 (arkanoid.bas et arkanoid.bin), il
arrive donc � interpr�ter, au moins en partie, le signal qu'il re�oit.

Samuel Devulder

unread,
Jan 17, 2010, 7:43:13 AM1/17/10
to
Doug713705 a �crit :

> - Lancement de mess avec la commande :
> mess to770 -cart ./.mess/cart/basic.m7 -cass ./.mess/k7/arkanoid.wav
>
> - La commande run"" (qui sur le fichier k7 affiche searching puis FOUND
> arkanoid.bas et le charge) affiche searching puis FOUND arkanoid.bas et
> plante sur une une IO ERROR en cours de chargement.

Sous windows j'ai la m�me chose. Si au lieu de: RUN "", je fais:
SKIPF "ZEFZFGGGS"
alors il me trouve bien tous les fichiers:

* ARKANOID.BAS
* ENTETE.BIN
* ARKANOID.BIN
* CAAV TO!.BAS

Tout cela plaide assez pour un pb de temporisation entre les blocs
logique du fichier basic (pour laisser le temps au basic de mettre tout
ca en bank ram et faire 2-3 chainages). Je vais voir de ce cot�.

> - En relan�ant la m�me commande run""
> dans la foul�e, le TO7/70 affiche searching puis FOUND arkanoid.bin et
> plante sur une FM ERROR en cours de chargement.

File-mode error. Logique on veut charger en basic un code binaire. Ca
signifie juste que l'IO error s'est trouv�e avant arkanoid.bin.

sam.

Samuel Devulder

unread,
Jan 17, 2010, 11:08:06 AM1/17/10
to
Samuel Devulder a �crit :

> Tout cela plaide assez pour un pb de temporisation entre les blocs
> logique du fichier basic (pour laisser le temps au basic de mettre tout
> ca en bank ram et faire 2-3 chainages). Je vais voir de ce cot�.

Bon j'ai ajout� 3secondes de blancs entre les fichiers en plus d'une
amm�lioration de la vitesse de traitement:
http://pastebin.com/f17a8e92

Au final on a un fichier wav qui "sonne" bien comme une K7 TO avec une
pause entre les fichiers simulant l'arret et le d�marrage du lecteur K7.

En revanche, je suis d��u car MESS n'arrive pas mieux � la lire. Il doit
y avoir un truc sp�cial dans le traitement fait par MESS. J'ai essay� de
comparer les 2 wav, mais je ne vois rien de sp�cial (sauf que MESS
g�n�re du 16bits, et un signal a peu pr�s carr�, mais je pense pas que
ca influence).

Il faudrait voir si sur un TO ca marche bien. Je ne peux h�las tester
moi m�me en ce moment (je suis loin de mes vieilles machines en ce moment).

Une id�e pour tester en l'absence de fausse k7 avec jack: Brancher la
sortie jack du PC sur un enregistreur k7 classique. Placer
l'enregistreur en mode "enreg" et jouer le wav sur le PC. On obtient
alors un K7 que l'on peut mettre dans le lecteur TO et voir si ca passe
sans aucun bricolage hardware.

sam.

GzavSnap

unread,
Jan 17, 2010, 2:20:03 PM1/17/10
to
Salut,

| Une id�e pour tester en l'absence de fausse k7 avec jack: Brancher la
| sortie jack du PC sur un enregistreur k7 classique. Placer
| l'enregistreur en mode "enreg" et jouer le wav sur le PC. On obtient
| alors un K7 que l'on peut mettre dans le lecteur TO et voir si ca passe
| sans aucun bricolage hardware.
| sam.

Il faudra de toute fa�on un ampli devant.
Enregistre plut�t sur K7, puis tu la lis apr�s.
Tu contr�leras mieux la puissance de sortie.


GzavSnap

unread,
Jan 17, 2010, 2:45:45 PM1/17/10
to

En r�gle g�n�ral, ce fil me donne l'impression de partir dans tous les
sens...
Le but est-il de r�inventer le d�codage son du TO7... o� de faire
fonctionner deux ou trois programmes sur un TO7 ?
La RS il faut oublier... pas du TLL et y'a des probl�mes de synchro en
sortie / un grattage de t�te pour envoyer le signal depuis le PC.(pas
bon...).
Seulle, la sortie parall�le peut �tre exploit�e, mais l�, encore de la
programmation...
Donc, le plus simple est de cr�er un son en wav... et de l'enregistrer sur
K7.
Le plus rapide en chargement est de mettre la connection LPT sur le bus
cartouche, et de faire un transfert m�moire.
Entre les deux, il y a l'utilisation de la LPT (1bit seullement) sur
l'entr�e num�rique... (d�j� �voqu� sur le fil.)

La "Fausse" K7, risque de ne pas fonctionner car la puissance de sortie du
volume des cartes son est tr�s souvent brid�e.
Il faudra l'amplifi�e entre le PC et la "fausse" K7.

Dans tous les cas, il faut faire les testes invivo, insitu ... inTo7.

Mais le probl�me c'est d�j� pos� sur d'autre machines, et les exemples sur
le net sont nombreux.


Samuel Devulder

unread,
Jan 17, 2010, 4:38:56 PM1/17/10
to
GzavSnap a �crit :

> La "Fausse" K7, risque de ne pas fonctionner car la puissance de sortie du
> volume des cartes son est tr�s souvent brid�e.
> Il faudra l'amplifi�e entre le PC et la "fausse" K7.

Peut-etre, mais ca m'�tonnerait dans la mesure ou certains ont report�s
avoir fait manger � un TO (ou un MO ce qui n�cessite des freqs encores
plus �lev�es) des enregistrement MP3 de K7 thomson avec ce m�me dispositif.

> Dans tous les cas, il faut faire les testes invivo, insitu ... inTo7.

Oui il faut tester in vivo. Je rage de ne pas avoir mes machines � cot�..

Pour l'instant je fait avec MESS qui est ce qui existe de plus proche
d'une vrai machine. Je me dit que si ca passe sous MESS, alors ca
marchera sur le vrai.

J'ai beau comparer sous audacity en mode "spectre" un fichier wav
contenant un prog basic vide cr�� par mess avec le fichier wav g�n�r�
par script python sur le m�me fichier basic vide, et je ne vois pas ce
qui diff�re.

Les bits sont lisibles un � un dans cette vue et correspondent. Seul la
fin de bloc est difficilement lisible quand elle vient de MESS (ou m�me
d'un WAV reel).. le spectre semble presque tout blanc pendant quelques
ms en fin de bloc, et cela n'existe pas dans le script python. Je vais
essayer de me rencarder sur logicielsmoto.

Un truc a noter: sous audacity j'ai d�couvert qu'au d�but d'un bloc
header ou data, il y a 1sec avec un signal � 6.3khz (il ne me semble pas
avoir lu cela dans la doc des lecteurs K7). De plus � la fin du bloc
"entete" contenant le nom de fichier il y a une pause de 0.2sec.

Malgr�s l'ajout de ces d�tails, le fichier wav fait toujours une IO
Error � 4 sec sur le fichier basic vide, ce qui correspond � la toute
fin du fichier wav.

Il va falloir encore creuser... pb int�ressant tout cela.

sam.

Samuel Devulder

unread,
Jan 17, 2010, 5:37:55 PM1/17/10
to
Samuel Devulder a �crit :

> Il va falloir encore creuser... pb int�ressant tout cela.

EUREKA: j'avais simplement un bug dans la machine � �tat des blocks sur
k7, et du coup j'introduisais une pause avant l'octet de CRC. Une fois
corrig� tout marche impec!

J'ai un code qui marche avec MESS et avec WAK2K2.. reste � voir sur
machine r�elle. Des volontaires?
http://pastebin.com/f20d6db85

sam.

Doug713705

unread,
Jan 17, 2010, 7:13:14 PM1/17/10
to
Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:

> Samuel Devulder a �crit :

Exc�llent ! �a marche impecc'.
Merci beaucoup :-)
J'essaie d�s que je le peux sur une v�ritable cassette et un vrai T07.

Samuel Devulder

unread,
Jan 18, 2010, 10:40:23 AM1/18/10
to
Doug713705 a �crit :

> Dans fr.comp.ordinosaures Samuel Devulder nous expliquait:
>
>> Samuel Devulder a �crit :
>>
>>> Il va falloir encore creuser... pb int�ressant tout cela.
>> EUREKA: j'avais simplement un bug dans la machine � �tat des blocks sur
>> k7, et du coup j'introduisais une pause avant l'octet de CRC. Une fois
>> corrig� tout marche impec!
>>
>> J'ai un code qui marche avec MESS et avec WAK2K2.. reste � voir sur
>> machine r�elle. Des volontaires?
>> http://pastebin.com/f20d6db85
>
> Exc�llent ! �a marche impecc'.
> Merci beaucoup :-)
> J'essaie d�s que je le peux sur une v�ritable cassette et un vrai T07.

Juste pour info j'ai fait une r�f�rence � ce fil dans le forum de
logicielsmoto:

http://www.logicielsmoto.com/phpBB/viewtopic.php?p=2343&sid=d11da6012723f3cab6491ba63674be87#2343

sam.

Pucud

unread,
Feb 12, 2010, 9:19:39 AM2/12/10
to

Samuel Devulder wrote:
>
> .../...


> Par contre ces bricolages ne reglent pas le pb de temporisation entre
> blocs et fichiers.
>

Je ne suis pas sur ce coup-la, mais en train de regarder les
possibilit�s d'Audacity (c'est � cause de mon �pouse qui fait partie
d'une chorale et qui a r�cup�r� des .mp3.... etc.... etc...)

Bref, je me demande si vous ne pourriez pas introduire vos espaces grace
� ce type de pgm.
A conditon de savoir ou les mettre....

(Et maintenant elle me rapporte du MIDI.......)

Eskusez mon grain de sel. Bon courage
** cix **
Sur mon TRS80 �a marchait tr�s bien les K7.

Pucud

unread,
Feb 12, 2010, 9:23:55 AM2/12/10
to

Doug713705 wrote:
>
.../...


> C'est compliqu� tout �a et j'ai un peu l'impression d'�tre parti dans
> cette bataille la fleur au fusil et de me retrouver � court de munition
> face � un adversaire particuli�rement r�calcitrant, mais �a m'amuse
> beaucoup :-)
> --

"Point n'est besoin d'esp�rer pour entreprendre,
ni de r�ussir pour pers�v�rer"

T'es pas un peu Hollandais sur les bords ?
** cix **
NON, pas le fer � souder, je sort!!!

Pucud

unread,
Feb 12, 2010, 9:29:39 AM2/12/10
to

Samuel Devulder wrote:
>
.../...


> Un truc a noter: sous audacity j'ai d�couvert qu'au d�but d'un bloc
> header ou data, il y a 1sec avec un signal � 6.3khz (il ne me semble pas
> avoir lu cela dans la doc des lecteurs K7). De plus � la fin du bloc
> "entete" contenant le nom de fichier il y a une pause de 0.2sec.

Pour AZudacity j'arrive apr�s la bataille...
Double eskuz les gars!
** cix **

0 new messages