OVH Cloud OVH Cloud

[TO7] k7towav

48 réponses
Avatar
Doug713705
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 ]

10 réponses

1 2 3 4 5
Avatar
Doug713705
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 :-)
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]
Avatar
Samuel Devulder
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.
Avatar
Thierry Sundgau [nntp]
"Samuel Devulder" a écrit dans le message de news: 4b51b38e$0$24811$

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
Avatar
Thierry Sundgau [nntp]
"Doug713705" a écrit dans le message de news: hiqq73$67v$


- 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
Avatar
Samuel Devulder
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'.
Avatar
G.T
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
Avatar
Doug713705
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.
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]
Avatar
Samuel Devulder
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.
Avatar
Samuel Devulder
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.
Avatar
GzavSnap
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.
1 2 3 4 5