[MPF-I] Echanges libres sur les tutos

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [MPF-I] Echanges libres sur les tutos

Message par Zebulon »

Il faut effectivement utiliser ce convertisseur que je ne possède pas, as-tu un exemple de modèle qui fonctionne ? Il faut aussi utiliser le support U6 pour une seconde EPROM au lieu d'une puce RAM.

Je pense que dans l'idée de Fabien la carte MPF-1 est placée à côté du PC donc pas besoin de passer par un appareil intermédiaire, le câble audio est branché du PC au MPF-1.

J'ai effectué des tests avec le dictaphone car j'aimerais pouvoir m'en servir de mémoire de masse au lieu d'un lecteur de K7. Il ne fonctionne pas en l'état avec MPF-1 mais il fonctionne bien avec le CPC et le ZX spectrum.
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par gotcha »

Le programme qu'avait partagé jeffounet marche avec une liaison série de type RS232 (voltages negatif-positifs, comme -9v +9v). Un convertisseur USB qui sort du DB9 devrait logiquement respecter la norme RS232, par exemple: https://www.amazon.fr/UGREEN-PL2303-Win ... Y4UG/?th=1 . Le problème, c'est qu'ils ne donnent pas les infos de voltage.

61N0K3md5nL._AC_SL1500__ret.jpg
61N0K3md5nL._AC_SL1500__ret.jpg (14.64 Kio) Consulté 2687 fois

Le programme que j'ai patché hier (et pas encore partagé) lui marche avec les convertisseurs USB-TTL. Ce type de convertisseur n'a pas de prise DB9 et on a juste 4 fils à connecter. Par exemple: https://www.amazon.fr/Outbit-c%C3%A2ble ... 08HQYS3NQ/

51cw8WhUktL._AC_SL1001__ret.jpg
51cw8WhUktL._AC_SL1001__ret.jpg (12.97 Kio) Consulté 2687 fois

Maintenant, je vais travailler sur une évolution du programme qui détecte automatiquement si c'est l'un (RS232) ou l'autre (TTL). C'est possible car le RS232 et le TTL n'utilisent pas le même niveau de tension au repos. Je souhaite aussi pouvoir charger directement les fichiers .bin qui sont ce que les assembleur génèrent pas défaut la plupart du temps (par contre, contrairement à l'Intel Hex, il n'y aura pas de vérification par checksum). Il y a donc encore un peu de boulot pour obtenir quelque chose de pleinement satisfaisant.

Concernant la localisation du loader, je trouve assez naturel d'avoir une EPROM supplémentaire qui étend le moniteur avec des outils supplémentaires. Mon idée à terme serait de mettre beaucoup de RAM au MPF-1 et de charger les programmes que je crée uniquement en RAM (comme sur les ordinateurs habituels), non en dur dans les EPROM (Idéalement, j'aimerais charger des programmes relogeables en RAM, mais ça c'est une autre histoire).
En fonction de la place qu'il reste .. ou pas ... sur l'EPROM principal du MPF1, on pourrait aussi y ajouter des outils comme le loader. Je vais étudier tout ça.

Ce loader, c'est pour moi une manière intéressante pour découvrir le MPF-1b tout en me permettant de mettre en place un environnement de développement. Je trouve ça intéressant. Par contre, je comprends bien que ça puisse être moins excitant pour d'autres :-)
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: [MPF-I] Echanges libres sur les tutos

Message par Notator »

gotcha a écrit : 22 sept. 2022 13:43 Mon idée à terme serait de mettre beaucoup de RAM au MPF-1 et de charger les programmes que je crée uniquement en RAM (comme sur les ordinateurs habituels), non en dur dans les EPROM (Idéalement, j'aimerais charger des programmes relogeables en RAM, mais ça c'est une autre histoire).
Le souci, c'est de devoir recharger la RAM à chaque mise sous tension, et de devoir sauvegarder à chaque fin de séance, ce qui est une vraie plaie qui n'encourage pas l'assiduité sur cette SBC.

Idéalement, il faudrait se débrouiller pour garder intact le contenu de la RAM entre les séances, afin de n'avoir pas à répéter les opérations fastidieuses de chargement et de sauvegarde à chaque séance.

Pour ce faire, il faudrait pouvoir, soit maintenir intact le contenu de la RAM par piles (ce que peut faire le MPF-1P), soit utiliser de l'EEPROM (une carte d'extension du MPF-1P le fait), soit pouvoir brancher sur le MPF-1 une carte mémoire ou une clé USB.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: [MPF-I] Echanges libres sur les tutos

Message par gleike »

Apparemment ça existe.
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: [MPF-I] Echanges libres sur les tutos

Message par Notator »

Oui, c'est une bidouille inspirée de ce qu'il existe sur le MPF-1P, ce dont je parlais plus haut...
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17423
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par fneck »

gotcha a écrit : 22 sept. 2022 12:48 L’intérêt, c'est de simplifier le chargement des programmes que tu crée depuis un assembleur/compilateur sur PC (...)
Ok mais il y a aussi des inconvénients. Comme l'a dit déjà Zebulon il te faut remplacer la 2ème puce de RAM par la ROM HEX-1B puis utiliser un convertisseur USB/série sur le PC, avec le câble qui va bien, puis utiliser un programme de communication... bref c'est pas si simple.

A savoir aussi que l'enregistrement et la lecture en WAV fonctionne avec une réussite de 100% sur le PC une fois la suppression de R13 réalisée. Pour ma part j'ai dû mettre une carte son sur port USB parce que mon ordinateur portable ne dispose pas de prise micro externe. Ensuite les routines TAPE RD et TAPE WR sont incluses dans le moniteur du MPF-1.

Pour le fun je comprends tout à fait que HEX-1B soit amusant mais en pratique, pour travailler sur le PC puis transférer sur le MPF-1, je trouverais plus intéressant un convertisseur en WAV comme Zebulon avait commencé à faire (peut être terminé même, je n'ai pas forcément suivi).
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [MPF-I] Echanges libres sur les tutos

Message par Zebulon »

Pas encore fini... Il faut que je code la lecture du fichier binaire en entrée, pour l'instant le fichier que je génère est construit par une boucle. :wink:
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17423
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par fneck »

Sur mon MPF-1B original, il y a une Eprom montée en U7, je n'avais jamais cherché à savoir ce que c'était. Mais maintenant que je sais un tout petit peu utiliser la bête, j'ai enfin regardé :D

Je ne vais pas vous le dévoiler comme ça, ce serait trop facile, donc voici le fichier .BIN de l'EPROM, c'est une 2716. Mais le programme doit pouvoir aussi se charger en RAM, ça devrait être facile pour Gotcha avec son interface série ou encore transformé en WAV par Zebulon.
.
MPF-1 ROM AM2716-U7.zip
(671 octets) Téléchargé 42 fois
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par gotcha »

Sympa, une nouvelle ROM à désassembler :mrgreen:

Pour info, j'ai crée un repo sur github où j'ai déjà mis le code désassemblé et réassemblé de HEX-1BP : https://github.com/gotcha-z80/mpf1
Je compléterai avec l’évolution que je suis en train de développer (support RS232 / TTL automatique), et d'autres choses au fur et à mesure que je m'amuse avec le MPF-1.

Dans mes dernières expériences, je n'arrive pas à charger un programme trop gros (je tentais de charger ma version du loader en RAM avec le loader original en EPROM). Il y a peut être un problème de timing dans le code original et il va falloir que j'étudie tout ça.

Sinon, petite question (je n'ai pas trop cherché mais vous le savez peut-être): où est mise la pile en RAM par le moniteur ?
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par gotcha »

fneck a écrit : 24 sept. 2022 19:14 donc voici le fichier .BIN de l'EPROM, c'est une 2716. Mais le programme doit pouvoir aussi se charger en RAM
En fait pas forcement. Çà dépend si le code est PIC (Position Independent Code, avec juste des adresses relatives) ou non.

Par exemple, quand on regarde le code de HEX-1BP désassemblé, on voit ça:

Code : Tout sélectionner

2000 dd 21 53 21		LD          IX,displayOffset 
displayOffset est l'adresse des 6 caractères à afficher et l'adresse est absolue, pas relative: 2153h.

Du coup, ce code est fait pour être mis dans l'EPROM U7 à l'adresse 2000h et pas autre part !
On ne peut donc pas le charger en RAM à l'adresse 1800h. Pour cela, il faudra le réassembler pour être placé à l'adresse 1800h (avec la directive ORG).
C'est tout l'interet de dessassembler les codes comme je l'ai fait pour HEX-1BP, car ça permet ensuite facilement de le placer ailleurs sans risques.

Je crois que JP et CALL utilisent aussi des adresses absolues. JR est par contre relatif.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [MPF-I] Echanges libres sur les tutos

Message par Zebulon »

J'ai regardé le code hier soir et il n'est pas relogeable, il y a des call avec des adresses absolues dans la plage 2000h. Par contre on peut le charger en RAM si on place une seconde puce RAM en U7.
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: [MPF-I] Echanges libres sur les tutos

Message par Notator »

gotcha a écrit : 25 sept. 2022 09:20 Sinon, petite question (je n'ai pas trop cherché mais vous le savez peut-être): où est mise la pile en RAM par le moniteur ?
La pile système est par défaut de 1F9F à 1FAE, et la pile utilisateur est sous la limite 1F9E, donc tout dans le champ mémoire de la RAM U8.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: [MPF-I] Echanges libres sur les tutos

Message par gleike »

Notator a écrit : 22 sept. 2022 14:32 Idéalement, il faudrait se débrouiller pour garder intact le contenu de la RAM entre les séances, afin de n'avoir pas à répéter les opérations fastidieuses de chargement et de sauvegarde à chaque séance.
Un petit montage dans ce genre pourrait être tenté,
Deux diodes schottky, un condo, une résistance, une pile CR2032, un inter.
Image
On bascule l'inter avant d'éteindre, on le re-bascule après l'allumage et Hop :wink:
D'après le Datasheet des HM6116LP-3 celles-ci ne consomment que 30µa en veille ( /CS au niveau haut)
et se contentent de 2V minimum.
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par gotcha »

gotcha a écrit : 25 sept. 2022 09:20 Dans mes dernières expériences, je n'arrive pas à charger un programme trop gros (je tentais de charger ma version du loader en RAM avec le loader original en EPROM). Il y a peut être un problème de timing dans le code original et il va falloir que j'étudie tout ça.
J'ai passé la journée sur ce problème ... J'ai dû sortir l'analyseur logique pour me rendre compte au final que c'est mon convertisseur USB-Serie TTL ou son driver qui est buggué !! :o Au bout d'un moment, il décide de répéter un caractère sans raison :lol:

J'ai essayé avec un autre convertisseur USB-Serie TTL et je peux transférer mon 'gros' fichier sans problème. Du coup, je vais enfin pouvoir tester mon HEX-1BP amélioré. Le bon coté, c'est que j'ai en ai profité pour vérifier les timings lors de la réception des bits et tout est OK. Ça dérive un peu mais comme tout est recalibré après chaque caractère transmis, c'est bon.

Je me dit maintenant que transférer de l'Intel Hex est quand même mieux qu'un .bin, car il y a une vérification de checksum. Sans cette vérification, c'est plus qu'une journée qu'il m'aurait fallut pour découvrir le bug de mon convertisseur :roll:
Dernière modification par gotcha le 25 sept. 2022 18:23, modifié 2 fois.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: [MPF-I] Echanges libres sur les tutos

Message par gotcha »

Notator a écrit : 25 sept. 2022 13:55 La pile système est par défaut de 1F9F à 1FAE, et la pile utilisateur est sous la limite 1F9E, donc tout dans le champ mémoire de la RAM U8.
Merci pour l'info.
Elle est sacrement petite. Il ne faut pas trop abuser sur les appels de fonction et les push si on la laisse telle quelle :lol:
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Répondre