[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 : 2787
Inscription : 02 nov. 2020 14:03

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

Message par Zebulon »

Merci pour ces retours. En étant pragmatique je dirais que tu pourrais juste coller les datas au code mais je comprend ta démarche.

De mon côté je vais essayer Pasmo sur Windows mais je pense qu'il y a un package Linux.
gotcha
Messages : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

Oui, si c'était mon code, je laisserais l'assembleur mettre les data où il veut. Je pense qu'il est quand même utile de pouvoir fixer des adresses à plusieurs endroit facilement. D'un autre coté, si les adresses sont éloignées et qu'il faudrait mettre beaucoup d’octets inutiles au milieu, on peut comprendre qu'un .bin unique n'est pas forcement la bonne approche.

En fait, ce qui m’intéresse aussi, c'est de générer un format 'hex', comme le S19 de Motorola (ou le Intel Hex) qui permet d'exprimer en un unique fichier des segments qui doivent être chargés à différents endroits.
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 : 2787
Inscription : 02 nov. 2020 14:03

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

Message par Zebulon »

Oui je suis d'accord pour tout un tas de raisons on peut vouloir fixer plusieurs ORG (surtout combinés avec des includes pour merger des ressources externes) donc c'est bien de creuser ce point.

Je n'ai pas encore testé Pasmo... À voir s'il fait mieux.

Malheureusement comme tu dis il faut se fixer sur un assembleur et construire autour car les directives sont différentes d'un assembleur à l'autre.
gotcha
Messages : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

Sur 68000, c'est un peu plus facile car il a des compilateurs de référence qui supportent le processeur. Par exemple gcc dans le monde Linux qui donne compilateur C, assembleur, linker etc... Il est donc assez facile de se fixer sur une chaine d'outils.

Pour le Z80, on n'a pas cela, ce qui induit une fragmentation des outils (chacun semble refaire son assembleur) et les compilateurs C semblent pour la plupart bloqués sur des versions plus ou moins anciennes du langage (ils ne sont à mon avis pas totalement compatibles entre eux).

Pour Z80, j'ai l'impression que les assembleurs de référence sont plutôt sur des anciennes machines/OS comme le DOS (TASM). Pour du cross-assemblage, c'est quand même plus pratique de pouvoir utiliser un ordinateur moderne.
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)
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

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

Message par 6502man »

J'utilise TASM tous les jours sous Windows 10 pour mes développement rétro, c'est très pratique avec un batch pour automatiser certaines opérations selon la plateforme cible.
Le source je le crée avec Notepad++ :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
gotcha
Messages : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

@6502man du coup, tu utilises DOS Box ?

EDIT: A noter que TASM peut être 1/ Borland Turbo Assembler et 2/ The Telemark Assembler. J'imagine qu'on parle ici du second (Telemark) car le premier est pour x86. Ce que je comprends, c'est que la version TASM 3.2 marche sous Windows, a priori en 32 bits. Les versions d'avant sont pour DOS.
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)
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

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

Message par Leraptor06 »

Bien vu gotcha,
J'avais cru moi aussi que Phil voulais parler de vasm puisque je ne connaissais que tasm de Borland pour x86.
Jp
gotcha
Messages : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

jeffounet a écrit : 23 août 2022 14:57 allez voir le fil :viewtopic.php?f=1&t=10797&hilit=mpf1&start=165
J'y parle d'une trouvaille que j'avais fait sur une EPROM supplémentaire appelé "HEX 1BP" qui permet de transférer du code Z80 par un port série de PC via les prises jack de la carte MPF-1B.
Je me suis fait un câble pour connecter l'entrée EAR du MPF-1 à un convertisseur moderne USB<->Serial.

USB-RS232.jpg
USB-RS232.jpg (34.04 Kio) Consulté 2865 fois

J'ai "HEX 1BP" en U7 qui démarre correctement.

Il y a une sorte de communication entre le PC et le MPF-1, mais j'ai systématiquement une erreur RECORD coté MPF-1. La doc de "HEX 1BP" dit que le record type de mon fichier Intel Hex n'est pas bon (il attends 00h), mais en fait, j'ai fait un fichier minimum avec un record type de 00h comme demandé. Il y a donc un autre problème. :?

A l'analyseur logique, j’ai pu vérifier que ce que sort de mon convertisseur USB<->Serial est bon (les caractères ASCII envoyés sont bien décodés). Du coup, le problème doit venir du niveau des signaux. La norme RS232 permet différents voltage, par exemple -12v <-> 12v. Mon USB<->Serial sort un signal entre 0 et 3.5v donc plutot dans la logique TTL. La doc de "HEX 1BP" parle d'une connexion avec le port série d'un PC sous DOS. J'ai donc mesuré la tension sur mon PC 286 sous DOS et au repos, on est à -10.4v. Il doit lui respecter la norme de liaison série RS232.
  • Sur le port série du PC: niveau logique haut = -10.4v, bas = +10.4
  • Sur le convertisseur USB<->Serial: niveau logique haut = +3.5v, bas = 0v
Quand on regarde sur le schéma du MPF-1, l'entrée EAR est protégée par deux diodes qui maintiennent la valeur entre 0 et 5v. L'entrée doit donc supporter les -10v, +10v du PC. Du coup, le niveau du signal venant de du convertisseur USB<->Serial me semble trop bas. C'est je pense la même problématique que le chargement des programmes par cassette. Il y a peut-être aussi une inversion dans l’interprétation des niveaux de tension.

J'ai aussi retrouvé chez moi un convertisseur USB-Serial qui lui sort lui un signal qui me semble plus conforme à la norme RS232: entre -9v et +9v (-9 étant le niveau logique haut). Par contre, après essai sur le MPF1, ça ne marche pas non plus (encore l'erreur "record').

A priori, il existe des convertisseurs USB<->Serial TTL qui sont configurables et peuvent supporter 5v en plus du 3.3v (par jumper). je viens d'en commander un pour voir.

En tout cas, pour pour l'instant, en attendant mon nouveau convertisseur USB<->Serial 5v, je suis en train de désassembler le loader 'Hex 1BP'. Ça me permettra de voir s'il n'y a pas d'autres problèmes, comme des problèmes de timing ou de protocole.
Pièces jointes
USB-RS232 TTL - small2.jpg
USB-RS232 TTL - small2.jpg (38.87 Kio) Consulté 2851 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 : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

Bonnes nouvelles (!!) Avec mon 2ème convertisseur USB->RS232 qui respecte la norme (-9v, + 9v). J'ai réussi avec "HEX 1BP" à charger une ligne de donnée d'un fichier Intel Hex dans la mémoire du MPF-1B via l'entrée audio.

A l'entrée du premier inverseur U3 de l'entrée audio, j'ai un signal entre -0.6v et 5.8v comme attendu (à cause des 2 diodes qui écrêtent le -9v +9v).

Mon exemple est un fichier Intel Hex avec juste une trame de type 0 et une trame de fin de fichier (type 1). Le fichier Intel Hex de "HEX 1BP" lui même a une trame de type 4 au début et le loader n'est pas content. Il faudrait l’étendre (un autre intérêt du désassemblage que je suis en train de faire).

Par contre, je trouve que le 7805 chauffe beaucoup. Il faudra que je compare avec et sans port série accroché à l'entrée audio.

Idéalement, il faudrait une liaison série qui fournit du 0 et 5v (mais il faudra certainement inverser l’interprétation des données dans le loader car en RS232, le niveau logique 1 a la tension négative). A voir quand je recevrai le nouveau convertisseur USB->Serie que j'ai commandé (sensé sortir du 5v).
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)
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

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

Message par 6502man »

gotcha a écrit : 15 sept. 2022 10:55 @6502man du coup, tu utilises DOS Box ?

EDIT: A noter que TASM peut être 1/ Borland Turbo Assembler et 2/ The Telemark Assembler. J'imagine qu'on parle ici du second (Telemark) car le premier est pour x86. Ce que je comprends, c'est que la version TASM 3.2 marche sous Windows, a priori en 32 bits. Les versions d'avant sont pour DOS.

NON NON c'est bien directement sous windows 10 et c'est bien Tasm (Telemark) :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
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 »

Sur cette page il y a un Freeware Z80 IDE assembleur compilateur compatible affichage 7 segments MPF1.
https://www.heinpragt.com/english/softw ... index.html
gotcha
Messages : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

gotcha a écrit : 19 sept. 2022 13:49 Bonnes nouvelles (!!) Avec mon 2ème convertisseur USB->RS232 qui respecte la norme (-9v, + 9v). J'ai réussi avec "HEX 1BP" à charger une ligne de donnée d'un fichier Intel Hex dans la mémoire du MPF-1B via l'entrée audio.
J'ai patché "HEX 1BP" pour inverser l’interprétation des bits et avec cette modification, j'ai pu charger un programme avec mon convertisseur USB-Serial TTL qui sort du 3.3v :mrgreen: Du coup, j'ai une version pour RS232, et une version pour TTL.

@fneck @zebulon je crois comprendre que vous êtes plus intéressés par le format cassette, mais "HEX 1BP" est à mon avis une bonne alternative car on peut charger depuis l'entrée audio directement le fichier assemblé en Hex (format Intel). J'ai encore des projets pour améliorer "HEX 1BP" (support complet du format Intel, chargement d'un fichier .bin direct, détection automatique de mode entre TTL et RS232), mais il est à mon avis déjà utilisable en l'état.
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)
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

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

Message par Leraptor06 »

Bonsoir,
@gleike merci beaucoup de ton partage !
Jp
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 : 21 sept. 2022 22:29 je crois comprendre que vous êtes plus intéressés par le format cassette, mais "HEX 1BP" est à mon avis une bonne alternative car on peut charger depuis l'entrée audio directement le fichier assemblé en Hex (format Intel).
Mais quel est l'intérêt, je ne vois pas trop ?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
gotcha
Messages : 2758
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

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

Message par gotcha »

L’intérêt, c'est de simplifier le chargement des programmes que tu crée depuis un assembleur/compilateur sur PC.

Actuellement, tu dois créer un fichier Wav avec un format spécial (l'encodage des cassettes), le charger sur le téléphone/dictaphone et espérer que ça marche (niveau suffisamment élevé - la discussion que vous avez eu).

Le loader HEX-1B te permet de charger depuis le PC en liaison série (via l'entrée audio du MPF), directement un fichier Intel Hex qui est le même type de format utilisé pour programmer des EPROM et que pas mal d'assembleurs/compilateurs doivent savoir générer directement.

Je trouve personnellement cela plus pratique qu'utiliser le format cassette. Au lieu du dictaphone, il faut un convertisseur USB-Série, mais on en a de tout manière besoin pour plein d'autres choses.

Par contre, si tu préfères entrer les programmes à la main via le clavier du MPF-1, utiliser la sauvegarde/restauration cassette ira très bien.
Dernière modification par gotcha le 22 sept. 2022 13:15, modifié 1 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)
Répondre