[MPF-I] Echanges libres sur les tutos
Modérateurs : Papy.G, fneck, Carl
Re: [MPF-I] Echanges libres sur les tutos
Le format de sauvegarde du MPF-1 possède un checksum du fichier dans l'entête.
- fneck
- Site Admin
- Messages : 17424
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [MPF-I] Echanges libres sur les tutos
D'accord. Effectivement moi je l'ai exécuté depuis la ROM en mettant le pointeur de programme sur 2000h.
On ne peut pas lors de la lecture depuis la cassette (ou ton interface série) choisir l'adresse de départ du programme à charger?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [MPF-I] Echanges libres sur les tutos
Lors d'une sauvegarde le moniteur du MPF-1 enregistre dans l'entête du fichier le nom logique de fichier, l'adresse de départ et l'adresse de fin ainsi qu'un checksum.
Lors d'un chargement, le moniteur ne demande que le nom logique et il implantera le fichier aux mêmes adresses que celles de la sauvegarde.
Il est possible de créer du code relogeable mais en bannissant toute instruction faisant référence à une adresse absolue au sein de la plage de code que l'on souhaite pouvoir reloger. Bien sûr les appels aux fonctions du moniteur doivent être spécifiés de manière absolue. Donc si tout est adressé de manière relative oui ce serait possible de charger à une autre adresse. Sinon il faut faire des manipulations sur le code.
Lors d'un chargement, le moniteur ne demande que le nom logique et il implantera le fichier aux mêmes adresses que celles de la sauvegarde.
Il est possible de créer du code relogeable mais en bannissant toute instruction faisant référence à une adresse absolue au sein de la plage de code que l'on souhaite pouvoir reloger. Bien sûr les appels aux fonctions du moniteur doivent être spécifiés de manière absolue. Donc si tout est adressé de manière relative oui ce serait possible de charger à une autre adresse. Sinon il faut faire des manipulations sur le code.
- fneck
- Site Admin
- Messages : 17424
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [MPF-I] Echanges libres sur les tutos
Oui bien sûr. Comme le moniteur demande les adresses de départ et de fin lors de l'enregistrement, c'est assez logique qu'il l'utilise celles-ci lors de la lecture. Donc ça voudrait aussi dire que si tu utilises un générateur de WAV il serait possible de modifier cette adresse avec le programme générateur.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [MPF-I] Echanges libres sur les tutos
Oui, c'est une des trois solutions que j'évoquais plus haut.gleike a écrit : ↑25 sept. 2022 18:04Un petit montage dans ce genre pourrait être tenté,
Deux diodes schottky, un condo, une résistance, une pile CR2032, un inter.
On bascule l'inter avant d'éteindre, on le re-bascule après l'allumage et Hop
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.
Dans les solutions par piles, il est aussi possible de reproduire le système utilisé pour le MPF-1P :
Le derrière du MPF-1P :
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Re: [MPF-I] Echanges libres sur les tutos
On pourrait en effet modifier cette adresse de chargement mais le programme ne fonctionnerait plus car il continuerait d'appeler des sous-routines dans la plage d'adresse 2000h alors qu'elles seraient chargées dans la plage d'adresse 1800h.
Comme le disait Gotcha il faudrait en même temps modifier toutes les adresses absolues indiquées dans le code (appels de sous-routines, pointeurs vers des données, etc) pour leur retrancher 200h.
Comme le disait Gotcha il faudrait en même temps modifier toutes les adresses absolues indiquées dans le code (appels de sous-routines, pointeurs vers des données, etc) pour leur retrancher 200h.
- fneck
- Site Admin
- Messages : 17424
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [MPF-I] Echanges libres sur les tutos
En fait je me suis mal exprimé, je voulais dire qu'en créant un WAV, il suffirait de lui dire de se charger en 2000h pour que cela fonctionne. Bien entendu il faut avoir la deuxième RAM en U7.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [MPF-I] Echanges libres sur les tutos
Oui d'accord. J'y travaille mais mon code est truffé de bugs... il avait fonctionné "par chance" sur le petit fichier de test mais là j'ai une erreur en fin de chargement. Je pense qu'il y a un problème sur le calcul du checksum et la longueur du fichier, en fait ma boucle "while !eof" est foireuse, elle va une itération trop loin et j'embarque le -1 du EOF. Bref je n'avais pas codé "sérieusement" depuis... 20 ans ?
Re: [MPF-I] Echanges libres sur les tutos
De mon coté, le HEX-1BP patché pour une liaison TTL que j'utilise me permet de charger les programmes en format Intel Hex en RAM.
Dans un fichier Intel Hex, il peut y avoir l'adresse de chargement. Mais comme souvent on convertit un .bin en .hex sans donner l'adresse de début, il faut spécifier un 'offset' au moment du chargement sur le MPF-1, ce que HEX-1BP permet de faire (valeur qui sera ajoutée à l'adresse spécifiée dans le fichier .hex).
Maintenant que je peux charger en RAM, j'ai assemblé mon loader amélioré pour le placer en RAM (1800h), mais j'ai un comportement très bizarre du MPF-1. Il décide se s’arrêter sur une adresse RAM où il y a une instruction valide, sans raison apparente. Ensuite, l’exécution pas à pas 'Step' marche bien, mais pas la commande 'Go'. Il y a un truc qui m'échappe ...
Du coup, je vais faire des plus petits pas en essayant simplement de charger le code original de HEX-1BP (sans modifs) réassemblé pour être placé en 1800h et voir si ça marche ou pas. Je vais aussi lire un peu la doc que MPF-1 car on ne peut peut-être pas faire tout ce qu'on veut avec la RAM. Je crois aussi avoir vu passer un programme de vérification de la RAM. Ça peut valoir le coup de vérifier que le hardware est bon aussi.
Une petite photos du debug d'hier (bug du convertisseur USB-Serie TTL):
Dans un fichier Intel Hex, il peut y avoir l'adresse de chargement. Mais comme souvent on convertit un .bin en .hex sans donner l'adresse de début, il faut spécifier un 'offset' au moment du chargement sur le MPF-1, ce que HEX-1BP permet de faire (valeur qui sera ajoutée à l'adresse spécifiée dans le fichier .hex).
Maintenant que je peux charger en RAM, j'ai assemblé mon loader amélioré pour le placer en RAM (1800h), mais j'ai un comportement très bizarre du MPF-1. Il décide se s’arrêter sur une adresse RAM où il y a une instruction valide, sans raison apparente. Ensuite, l’exécution pas à pas 'Step' marche bien, mais pas la commande 'Go'. Il y a un truc qui m'échappe ...
Du coup, je vais faire des plus petits pas en essayant simplement de charger le code original de HEX-1BP (sans modifs) réassemblé pour être placé en 1800h et voir si ça marche ou pas. Je vais aussi lire un peu la doc que MPF-1 car on ne peut peut-être pas faire tout ce qu'on veut avec la RAM. Je crois aussi avoir vu passer un programme de vérification de la RAM. Ça peut valoir le coup de vérifier que le hardware est bon aussi.
Une petite photos du debug d'hier (bug du convertisseur USB-Serie TTL):
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Re: [MPF-I] Echanges libres sur les tutos
Bonjour à tous,
@Gotcha
Si tu parles du programme de test que j'ai posté avec les docs il est fait pour un Z80 de façon générale, il n'est pas spécifique au MPF-I.
Par contre tu dois pouvoir l'adapter sans trop de problème.
Bonne journée
Jean-François
@Gotcha
Si tu parles du programme de test que j'ai posté avec les docs il est fait pour un Z80 de façon générale, il n'est pas spécifique au MPF-I.
Par contre tu dois pouvoir l'adapter sans trop de problème.
Bonne journée
Jean-François
Il n'y a que 11 sortes de gens, ceux qui comprennent ceux qui ne comprennent pas et ceux qui me font répéter!
Jean-François
Jean-François
Re: [MPF-I] Echanges libres sur les tutos
Bonjour à tous,
Pour les bricoleurs du dimanche et autres...
Un générateur de fichier pour MPF à partir d'un Arduino (je ne l'ai pas testé) Et un autre système de chargement des données: (non testé aussi) Voilà de quoi s'ammuser.
Bonne journée
Jean-François
Pour les bricoleurs du dimanche et autres...
Un générateur de fichier pour MPF à partir d'un Arduino (je ne l'ai pas testé) Et un autre système de chargement des données: (non testé aussi) Voilà de quoi s'ammuser.
Bonne journée
Jean-François
Il n'y a que 11 sortes de gens, ceux qui comprennent ceux qui ne comprennent pas et ceux qui me font répéter!
Jean-François
Jean-François
Re: [MPF-I] Echanges libres sur les tutos
Merci Jean-François.
Par contre je ne peux pas dl le dernier, l'anti-virus me dit qu'il y a HEUR:Trojan.MSOffice.Badur.gena
Par contre je ne peux pas dl le dernier, l'anti-virus me dit qu'il y a HEUR:Trojan.MSOffice.Badur.gena
- fneck
- Site Admin
- Messages : 17424
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [MPF-I] Echanges libres sur les tutos
Tu peux le télécharger, par contre c'est le fichier .docx qui est dans l'archive qui pose problème, non ?
[edit] Pas d'alerte de mon côté.
[edit] Pas d'alerte de mon côté.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [MPF-I] Echanges libres sur les tutos
Je suppose d'après le nom du trojan que c'est bien le docx.
Je vais essayer sur un autre PC qui a un anti-virus différent. Là c'était Kapersky. J'ai ESET NOD32 sur d'autres.
Je vais essayer sur un autre PC qui a un anti-virus différent. Là c'était Kapersky. J'ai ESET NOD32 sur d'autres.
Re: [MPF-I] Echanges libres sur les tutos
Bon, j'ai réassemblé le HEX-1BP original pour être chargé en RAM (1800h) et il marche bien. Le problème avec mon programme modifié doit donc venir d'un bug de ma part. Il ne reste plus qu'à chercher ...
Pour assembler sur PC et charger dans la RAM du MPF-1, c'est assez simple. J'utilise (sous Linux):
- z80asm pour créer un .bin à partir du .asm
- objcopy pour convertir le .bin en fichier Intel Hex avec la bonne adresse de chargement.
Code : Tout sélectionner
z80asm HEX-1BP-RS232.asm -l --output HEX-1BP-RS232.bin 2> HEX-1BP-RS232.listing
objcopy -I binary HEX-1BP-RS232.bin -O ihex HEX-1BP-RS232.hex --change-addresses 0x1800
J'envoie le fichier .hex depuis le PC par liaison série avec Teraterm (sous Windows pour l'instant) en 2400 bauds, 7 bits, even parity, 1 bit stop
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)