Logicielsmoto.com

Nous sommes le 19 Mar 2024, 04:38

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 48 messages ]  Aller à la page 1, 2, 3, 4  Suivante
Auteur Message
 Sujet du message: Interface Midipak de Logimus
MessagePosté: 19 Oct 2021, 14:22 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Nous avons déjà un reverse de la platine de cette extension, que je compte reprendre avec Eagle, histoire d'avoir un format plus moderne. Je pense que je vais produire 10 platines. J'ai déjà sourcé les composants à un bon prix, ça s'annonce pas mal.

Mais pour le moment, je me suis attaqué au boitier, car c'est quelque chose que je me promettais de faire depuis longtemps. Ce week-end, j'ai remodélisé à l'identique la partie avant du boitier. C'est la partie facile du problème, mais il y a un bon point : cette pièce est la même pour toutes les extensions Thomson. Prochaine étape, la partie arrière, nettement plus complexe.


Fichiers joints:
WP_20211019_12_27_35_Pro.jpg
WP_20211019_12_27_35_Pro.jpg [ 99.29 Kio | Vu 7871 fois ]
front_int.jpg
front_int.jpg [ 42.2 Kio | Vu 7871 fois ]
front_ext.jpg
front_ext.jpg [ 39.24 Kio | Vu 7871 fois ]
Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 09:11 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 432
Localisation: Var
Excellent, ça avance bien !

De mon coté j'ai extrait (depuis ton midipak.sap) et fait la conversion :
- des fichiers .bas vers .txt
- des fichiers .bin vers .asm (via f9dasm)

Fichier(s) joint(s):
MIDIPAK-dasm.rar [19.62 Kio]
Téléchargé 224 fois


Edit : Mise à jour des 3 fichiers .asm avec les labels et commentaires de Fool-DupleX

De ce que je comprends les ports en lecture/écriture sont E7F2 et E7F3.
Je ne sais pas si tu as de la doc sur la manière d'envoyer/recevoir les données au travers de ces ports, sinon il faudra que je regarde le code.


Dernière édition par Bentoc le 23 Oct 2021, 15:31, édité 5 fois.

Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 10:13 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
La doc, c'est la datasheet du 6850 : http://dcmoto.free.fr/documentation/6850ds/index.html

Le diviseur est 16 (le 6850 recoit E/2, soit 500 kHz d'horloge principale, divisé par 16 = 31.25 kbits/s, soit celle de MIDI), pas de contrôle de flux, 8 bits, pas de parite, un stop. Et c'est tout. Après il suffit d'envoyer ou de recevoir les données. On peut utiliser l'IRQ, notamment pour la réception.

Je vais vous faire un .fd d'une disquette que j'ai retrouvee dans mes archives, il y a du code et des fichiers SYX et MID pour ma Korg X5D, rien de bien magique mais suffisant pour tester.

Edit: bon boulot pour la conversion des fichiers, mais le désassemblage est pas terrible. Il est faux par endroits, contient des macros inutilisées sur Thomson et ne contient pas celles utilisées sur Thomson (d'où ce désassemblage faux à certains endroits). Je peux essayer de m'y coller, mais ce sera tres manuel.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 10:40 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 432
Localisation: Var
Ne t'embêtes pas avec le désassemblage, la datasheet devrait me suffire.
Oui c'est brut en sortie de f9dasm, je n'ai même pas cherché a positionner les zones de données, c'est juste pour avoir une idée de ce qu'il y a dedans.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 11:03 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
$E7F2 = registre de contrôle en écriture, registre de statut en lecture
$E7F3 = envoi en écriture, réception en lecture.

Une fois que le registre de contrôle est configuré, c'est très simple.

Edit: $03 -> $E7F2 pour réinitialiser le contrôleur, puis $15 -> $E7F2 pour écriture/lecture sans interruptions. Je vous laisse regarder comment fonctionne le statut, c'est usuel.

Edit 2: j'ai envoyé à Bentoc une image d'une de mes disquettes d'époque avec du matériel que j'avais écrit pour cette interface.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 13:55 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Bentoc a écrit:
- des fichiers .bin vers .asm (via f9dasm)

Il marche bien cet outil ?

Je demande car en regardant l'ASM je vois des instructions inexistantes sur 6809 (PSHA / PULA). Sans doute que cela vient d'un héritage du source depuis le 6800. En outre j'ai l'impression qu'il y a un SETDP implicite à $00:
Code:
 SUBB    M0001                    ;B01B: D0 01       


Perso j'ai quelques réserves sur le désassemblage automatique des ROM/progs thomson quand on sait toutes les astuces de SKIP1 et SKIP2 qui s'y trouvent (ca permet de réduire la taille du code en sautant au dessus de 1 ou 2 octets en plus court qu'avec un BRA).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 14:24 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Citation:
Il marche bien cet outil ?

Il marche bien, mais pas sur Thomson. Il est conçu pour l'environnement Flex. Les instructions qui te semblent cheloues sont des macros, comme on peut en trouver dans le code source du moniteur sur Thomson, effectivement des équivalent d'instructions 6800. PULA c'est PULS A.

Et evidemment, il ne connait pas par exemple les SWI/FCB du MO ou les skips, donc ça part en sucette parfois.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Oct 2021, 17:04 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Citation:
Code:
SUBB    M0001                    ;B01B: D0 01 

J'ai regardé le code de spy3.bin de mon côté pour le fun. En fait, cette partie est du code mort inutilisé qui sert de zone de variable ... Alors le DP ... :brosse:

Le code est très perfectible. Y'a du mort au début et à la fin. J'aime beaucoup ce code-ci :

Code:
B0F2 7EB0F5     JMP    $B0F5   
B0F5 3B         RTI           


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 09:49 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Pour l'exercice et pour m'imprégner du style de codage des auteurs, j'ai fait un reverse commenté de spy3.bin. Bentoc, si tu veux remplacer ton fichier sp3.asm dans ton archive rar ?

Je ne ferai pas les autres .bin, sauf si vous insistez très fort, car ils sont plus longs. L'idée était d'avoir au moins un désassemblage correct, comme référence.

Il n'y a rien de magique au final et le code est de qualité très moyenne. On sent bien que l'auteur a un peu bidouillé et une fois que ça fonctionnait, release.


Fichiers joints:
spy3.zip [4.32 Kio]
Téléchargé 233 fois
Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 11:15 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Fool-DupleX a écrit:
et le code est de qualité très moyenne

En effet
Code:
B07B 1F89       TFR    A,B               
B07D 8480       ANDA   #MIDI.RXIRQ               
B07F 10270072   LBEQ   EndOfIRQ        ; Ca ne vient pas de l'interface MIDI
                               
B083 1F98       TFR    B,A   

C'est à croire que le codeur ne connait pas l'opération "BITA" qui fait un "AND" sans modifier les bits (et évite ainsi de sauver la valeur antérieure dans B).
Note: et même qu'ici comme c'est le bit de signe, un simple BPL suffisait après avoir lu A.
Citation:
On sent bien que l'auteur a un peu bidouillé et une fois que ça fonctionnait, release.

Ah ? il avait de l'avance sur son temps, car quand je vois les codeurs JS de nos jours, ils font juste pareil (et ils en sont fier qui plus est.)

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 11:32 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Citation:
Ah ? il avait de l'avance sur son temps [...]

:lol: Trop vrai. Heureusement qu'aujourd'hui, il y a des logs façon "Error: operation completed successfully.", pas vrai ? :W

C'est d'autant plus dommage que ce code doit être hyper-fast pour capturer les événements et les afficher. Y'a vraiment de la marge de progression.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 17:03 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Je sais bien que tu m'as dit, Bentoc, que c'était pas nécessaire, mais je m'ennuyais et j'aime bien cet exercice, ça me repose l'esprit. Alors voici midirout.bin. Il y a moyen de s'inspirer pour le séquenceur en tâche de fond, mais guère plus.

On retrouve la même qualité de code, du grand art (Y n'est jamais utilisé ailleurs):

Code:
BED2 A780       STA    ,X+             ; Range l'octet MIDI   
BED4 B6BE2F     LDA    CurrentTime             
BED7 A780       STA    ,X+               
BED9 B6BE30     LDA    CurrentTime+1   ; Avec le timestamp courant   
BEDC A780       STA    ,X+               
BEDE BFBE32     STX    ProdPtr         ; Met le pointeur de buffer à jour   
BEE1 3420       PSHS   Y                 
BEE3 10BEBE2D   LDY    EvtCount             
BEE7 3123       LEAY   $03,Y             
BEE9 10BFBE2D   STY    EvtCount             
BEED 3520       PULS   Y                 

Du coup, je pense que je vais quand même faire midit32.bin, j'ai vu qu'il ne contient presque que du vide.


Fichiers joints:
midirout.zip [4.16 Kio]
Téléchargé 218 fois
Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 17:43 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Je suis avec attention ce fil, mais juste pour situer la chose !
L'interface midi IN/OUT existait donc sur Thomson ?

Vous faites quoi en faite, vous adaptez une compatibilité avec le TO8 ?

:)

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 18:02 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 432
Localisation: Var
Fool-DupleX a écrit:
Je sais bien que tu m'as dit, Bentoc, que c'était pas nécessaire, mais je m'ennuyais et j'aime bien cet exercice, ça me repose l'esprit. Alors voici midirout.bin. Il y a moyen de s'inspirer pour le séquenceur en tâche de fond, mais guère plus.

On retrouve la même qualité de code, du grand art (Y n'est jamais utilisé ailleurs):

Code:
BED2 A780       STA    ,X+             ; Range l'octet MIDI   
BED4 B6BE2F     LDA    CurrentTime             
BED7 A780       STA    ,X+               
BED9 B6BE30     LDA    CurrentTime+1   ; Avec le timestamp courant   
BEDC A780       STA    ,X+               
BEDE BFBE32     STX    ProdPtr         ; Met le pointeur de buffer à jour   
BEE1 3420       PSHS   Y                 
BEE3 10BEBE2D   LDY    EvtCount             
BEE7 3123       LEAY   $03,Y             
BEE9 10BFBE2D   STY    EvtCount             
BEED 3520       PULS   Y                 

Du coup, je pense que je vais quand même faire midit32.bin, j'ai vu qu'il ne contient presque que du vide.


Ce code me laisse sans voix ... je suis hyper déçu !!!
Bon ce n'est pas grave du coup on s'amuse bien quand même, je suis impatient de voir la suite ;-)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 20:03 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Sachant que dans mes recherches sur la production du son (avant d'aboutir sur les "MOD") je convertissais des fichiers midi pour les jouer sur Thomson, je me demande s'il serait "moralement" possible de lire le flux midi et de faire jouer de la musique de certains instruments au Thomson au passage...

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 48 messages ]  Aller à la page 1, 2, 3, 4  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com