"Hex 1BP" est un logiciel développé à la base par FLite et qui permet de charger un programme assemblé via l'entrée audio du MPF1 par une liaison série avec le PC. Il a été découvert et 'dumpé' par Jeffounet (https://forum.system-cfg.com/viewtopic. ... 94#p183094).
Ce programme supporte seulement une liaison RS232 et ne supporte pas tous les types de record du format Intel Hex.
J'ai retravaillé "Hex 1BP" et ajouté des améliorations:
- Support des convertisseurs USB-Série modernes en niveau TTL tout en gardant la compatibilité RS232
- Ignorer sans erreurs les trames Intel Hex non supportées
Notes:
- Avec un système tel que le MPF-1, vous devez comprendre ce que vous faites et tout ce que vous ferez avec l'aide de ce tutoriel est sous votre entière responsabilité.
- Je n'ai pour l'instant testé qu'avec le MPF-1 / MPF-1B, pas avec le MPF-1P. Il faudra vérifier si c'est valide ou pas pour le MPF-1P
2.1. Câble
La connexion avec le PC se fait par l'entrée audio du MPF-1 "EAR". C'est une prise audio mono de type jack 3.5mm.
Code : Tout sélectionner
MPF1 (récepteur) Emetteur
EAR Tip -----< <-------- TX
Ground -----< <-------- Ground
- Convertisseur RS232 qui sort des tensions entre -V et V (V est typiquement 12v, mais des convertisseurs peuvent utiliser d'autres voltages comme 9v par exemple). Ces convertisseurs utilisent une prise DB9.
- Convertisseur TTL qui ont généralement 4 câbles pour la sortie et qui délivrent des tensions entre 0 et 3.3v ou entre 0 et 5v.
- L'entrée audio du MPF-1 force le signal RS232 sur l'entré audio à être entre 0 et 5v grâce à 2 diodes (CR1 et CR2) et une résistance (R14).
Attention, assurez vous bien que R14 est bien là car si elle est trop basse ou a été enlevé (pour augmenter les niveaux audio par exemple), ça peut générer un court circuit ou un courant trop important
- Le MPF-1 utilise des portes de type 74LSxx , ce qui le rend compatible avec des niveaux hauts de 3.3v
2.2. Configuration du PC
Pour envoyer un fichier Intel Hex vers le MPF-1, il faut un logiciel d’émulation de terminal qui supporte le lien série.
Sous Windows, J'utilisais initialement TeraTerm, mais j'ai remarqué un bug car au bout d'un certain nombre de caractères envoyés, un caractère est envoyé en double ce qui bien sûr génère une erreur de checksum J'utilise maintenant RealTerm qui ne me pose pas de problème pour l'instant.
Le logiciel doit être utiliser le bon port COM (cela dépend de votre config) et les propriétés de transmission suivantes:
Code : Tout sélectionner
- 2400 bauds
- Data bits: 8
- Parity: None
- Stop bit: 1
Sur github, je propose des fichiers .Hex et .Bin pre-assemblés pour être placé à l'adresse 2000h, donc au début de U7:
https://github.com/gotcha-z80/mpf1/tree ... /Evolution
Il est tout à fait possible de le déplacer, par exemple en le mettant à la place du Basic à l'adresse 800h dans U6.
Dans ce cas, il faut juste changer l'adresse du code dans le fichier ASM (et éventuellement dans le fichier Makefile si vous l'utilisez) et réassembler le programme. La logique pour ce genre de loader est de résider dans une EPROM tout comme le moniteur et non en RAM, car il est nécessaire pour charger les autres programmes.
Il faut noter que le loader utilise une zone de RAM entre 1F6Fh et 1F76h inclus. Cela veut dire qu'a chaque fois que le loader est lancé,
il écrasera les valeurs dans cette zone.
3. Execution
Le chargement d'un fichier Intel Hex est fait en plusieurs étapes.
Ici, on suppose que le loader est à l'adresse 2000h.
- Lancement du programme
- Taper sur le clavier: 'Addr' 2000 'Go'
- Requête 'Offset':
- Le MPF-1 affiche 'Offset'
Selon comment vous avez crée le fichier Hex, il peut contenir ou non l'adresse mémoire cible où il doit être chargé.
L'offset vous permet de modifier la la valeur d'adresse du fichier Hex en y ajoutant un offset.
- Pas d'offset (valeur 0) : 'Go'
- Offset: entrer la valeur en hexa puis 'Go'
- Le MPF-1 affiche 'Offset'
- Requête de Son
- Le MPF-1 affiche 'Sound'.
Quand il charge un fichier Hex, vous pouvez demander à entendre de son des data en chargement ou non.
- Pas de son: 'Go'
- Avec du son: n'importe quelle touche sauf 'Go'
- Le MPF-1 affiche 'Sound'.
- Détermination du type de liaison série
- Le MPF-1 affiche 'Plug'.
Il vous demande de vous assurer que le câble est bien connecté à la l'entrée audio EAR
Le loader va déterminer automatiquement si la liaison serie est RS232 ou TTL et pourra donc interpréter les data qu’il recevra correctement.
- Presser 'go' quand le câble est connecté
- Après avoir pressé la touche, le MPF-1 bippe et affiche pendant 1s quel type de lien série il a détecté: 'RS232' ou 'TTL'
- Le MPF-1 affiche 'Plug'.
- Transmission
- Ensuite, le MPF1 affiche 'Send', bippe et affiche "......" pour notifier qu'il attend les données
- A ce moment, vous pouvez envoyer le fichier hex depuis le PC sur le port série bien configuré.
- Quand le fichier est transféré et que tout est OK, le MPF-1 bippe et affiche 'Good' avant de revenir au moniteur
- S'il y a un problème avec un type de record Intel Hex non supporté, il affichera 'Record' et se remettra en attente de transfert
- S'il y a un problème avec le checksum d'un record, il affichera 'Checksu' et se remettra en attente de transfert