Page 2 sur 3

Re: Extension FPU pour CPC

Publié : 06 juin 2023 18:39
par Fred_72
Bravo pour ce travail.

Il n'est pas nécessaire de modifier le BASIC. Ce serait une opération complexe qui poserait certainement de gros problèmes de compatibilité.
Je pense (mais cela n'est qu'un avis :wink: ) qu'il est plus simple d'utiliser une ROMs additionnelles qui ajoutent des commandes au BASIC (les fameux RSX). Comme ça le BASIC reste inchangé tout en mettant à disposition des commandes spécifiques pour piloter le FPU. Il est aussi possible de les appeler directement en LM.
Une ROM fait 16K donc ça laisse pas mal de possibilités.

Re: Extension FPU pour CPC

Publié : 06 juin 2023 20:16
par Brochiman
Fred tu m'as dis que tu t'ennuyais dernièrement.... :lol: :lol: :lol:

Re: Extension FPU pour CPC

Publié : 06 juin 2023 20:51
par Leraptor06
Bonsoir Fred,
Ca parait simple et évident ton idee. Bien sur ce serait la meilleure solution quand on prend du recul pour ne pas modifier l'existant. Bravo

Re: Extension FPU pour CPC

Publié : 06 juin 2023 21:26
par Fred_72
@Brochiman: Tu m'as déjà donné du travail à faire donc ça va, je ne m'ennuie pas :D

Re: Extension FPU pour CPC

Publié : 07 juin 2023 22:07
par Zebulon
Merci Philippe j'ai bien reçu le courrier aujourd'hui. :D

Re: Extension FPU pour CPC

Publié : 08 juin 2023 08:53
par wawa.voun
Bonjour,

Merci pour vos suggestions sur l'utilisation de cette carte.

En ce qui concerne l'utilisation d'une eprom avec les bonnes commandes oui c'est la solution logique.
J'avais même envisagé de prévoir un emplacement eprom sur la carte...
Bon je n'ai pas voulu augmenter la complication et des cartes eprom il y en a pléthore sur le marché.

Je vous confirme également que la difficulté principale est bien la conversion des formats des flottants.

Pour l'instant je travaille sur l'utilisation de la carte en Fortran et en Basic compilé Microsoft. La librairie en assembleur est prête il reste à faire les essais. Je découvre un peu l'assembleur Z80 donc je prends mon temps.

Après je verrai. Si quelqu'un veut se lancer dans un code pour Locomotive Basic + eprom il est le bienvenu !

Cordialement.
Philippe

Re: Extension FPU pour CPC

Publié : 08 juin 2023 09:15
par Zebulon
Quand tu auras avancé et que tu pourras partager le code Z80 de la librairie on verra comment la faire cohabiter avec le Basic. L'ajout de commandes RSX n'est pas compliqué en soi, par contre il faudra effectivement ajouter une surcouche pour la conversion entre le format de stockage des réels du Basic et celui demandé par le coprocesseur... En espérant que ces conversions ne ruinent pas les performances.

J'ai commencé à lire la datasheet pour comprendre le mécanisme et ils sont un peu avare de schémas pour comprendre exactement ce qui se passe dans la pile entre les TOS, les NOS et les stack pop mais bon ce ne doit pas être bien sorcier. :D

J'espère et je suppose qu'il est possible d'enchaîner des calculs sans repousser toutes les opérandes à chaque fois, un peu façon RPN de HP.

En tout cas c'est vraiment une belle aventure. J'imagine dépoussiérer Mandelbrot et pourquoi pas du raytracing soyons fou. :wink:

Re: Extension FPU pour CPC

Publié : 08 juin 2023 11:09
par wawa.voun
Oui ça fonctionne bien d'une manière similaire aux piles HP.

Chaque lecture efface l'élément du haut de la pile et fait tout remonter d'un cran.
Chaque écriture se place en haut de pile et fait disparaître l'élément du bas de la pile.
Le résultat d'une opération se place en haut de pile comme une écriture.

C'est une pile LIFO (last in first out).

Re: Extension FPU pour CPC

Publié : 09 juin 2023 12:46
par jeffounet
Bonjour Philippe,

J'ai bien reçu le circuit imprimé.
Merci

Re: Extension FPU pour CPC

Publié : 10 juin 2023 16:43
par wawa.voun
Bonjour,

La bibliothèque ci-jointe est la première version fonctionnelle. C'est loin d'être optimisé mais ça marche !

Le programme de test à l'intérieur du zip, compilé / linké avec bascom et l80, s'exécute sur mon CPC6128 en 13s50 en mode normal et en 2s55 s'il est lié avec cette bibliothèque (et bien sûr si le AM9511 / C8231 est présent, 4 MHz dans mon cas).

Le processus est le suivant :

1_ compiler les sources
m80 = am9511.mac/L --> am9511.rel
m80 =apu.mac/L --> apu.rel

2_ créer la librairie
lib80 libapu.rel=am9511.rel,apu.rel/e --> libapu.rel

3_ compiler le programme de test
bascom =aputst.bas/o/l --> aputst.rel

4 linker avec ou sans la bibliothèque (pour utiliser ou non le fpu)
(avec) l80 aputst.rel,libapu.rel,aputst.com/n/y/e ou (sans) l80 aputst.rel,aputst.com/n/y/e --> aputst.com

Il y a quelques warnings concernant les doubles définitions lors du link, mais cela fonctionne bien...

Amusez-vous !

Philippe

Re: Extension FPU pour CPC

Publié : 16 juin 2023 16:13
par Zebulon
Bonjour Philippe,

J'ai reçu tous les composants pour monter la carte alors je vais essayer de le faire ce weekend.

Je vais sûrement enfoncer quelques portes ouvertes mais je préfère valider avant de griller mon exemplaire du AM9511.

Le module DC DC boost doit être réglé avant de le souder sur la carte en l'alimentant avec 5v et en tournant le potentiomètre bleu pour mesurer 12v à vide avec un multimètre ?

Pour le souder sur la carte tu as d'abord soudé des pins header isolés dessous ?

Les dips switches permettent de régler l'adresse du port I/O pour communiquer avec l'AM9511, je dois les positionner comme sur ta photo ?

Comment connaître la fréquence de l'AM9511 ?

Les outils pour utiliser la librairie et l'exemple que tu as fourni sont FORTRAN-80 et BASIC-80 (MBASIC) sous CP/M 2.2 ?

Je pense que j'ai fait le tour de mes questions. :D

Merci beaucoup.

Re: Extension FPU pour CPC

Publié : 16 juin 2023 20:57
par wawa.voun
Bonjour,

J'ai réglé le dc-dc boost après soudure selon ta méthode mais avant d'installer le FPU. Oui j'ai soudé des header à une pin sur la carte puis le dc dc boost par dessus le tout.

Pour la fréquence de l'AM9511 c'est simple. Il n'y a que des 2 ou des 3 MHz, seul les Intel C8231 montaient à 4 MHz.
La carte ne peut pas faire du 3 MHz.
Donc pour toi ce sera 2 MHz. Bien entendu les 3 MHz fonctionnent à 2 MHz.

Si tu veux utiliser $FBFE et FBFF comme adresses oui tu peux le régler comme moi. Si tu as déjà quelque chose à cette adresse tu peux la changer en mettant aussi à jour le fichier am9511.mac de la librairie. Attention cependant à ne pas taper dans une adresse déjà utilisée en interne par le CPC sinon dysfonctionnement garanti. Voir CPC Wiki pour plus de détail https://www.cpcwiki.eu/index.php/I/O_Port_Summary.
Un dip switch sur "on" met le bit d'adresse de référence correspondant à zéro.

Les outils pour créer la librairie sont M80 et LIB80, pour moi ils proviennent d'un cpm 2.2 Apple II. En pièce jointe il y a l'image disque CPC que j'utilise sur mon HxC (les programmes et la librairie y figurent, normalement ok mais à vérifier avec la version ci dessus). A priori c'est basique comme outils et ça fonctionne aussi en cpm plus.
Bascom (Basic Compiler) et Fortran-80 pour CPC sont disponibles sur CPC Wiki (images hfe ci jointes).
Basic-80 est interprété donc ne peut pas utiliser la librairie.

Cordialement.
Philippe

PS1
Pour juste tester la carte depuis Locomotive Basic (en adaptant l'adresse au besoin) :
- faire "OUT &FBFE,26" (cela demande au FPU de mettre PI sur la pile)
- faire "PRINT IN(&FBFF)" 4 fois de suite pour récupérer dans l'ordre 2,201,15,218 (représentation de pi en flottant à 4 octets)
Si ça ça marche tout est ok.

PS2
Attention à l'alim du CPC. J'utilise une alim de pc trafiquée qui a la pêche. Mais je ne sais pas si l'alimentation standard du CPC via le moniteur peut fournir le courant supplémentaire de la carte, surtout que l'AM9511 pompe bien...

Re: Extension FPU pour CPC

Publié : 16 juin 2023 22:25
par Zebulon
Merci pour toutes tes réponses, les fichiers joints et pour le point d'attention concernant l'alimentation, je dois me méfier en effet.

J'ai un moniteur Amstrad mais j'utilise souvent une alimentation "custom" achetée sur la baie car je branche le CPC sur un écran plat. Cette alimentation est bricolée en remplaçant la fiche DIN par deux fiches pour l'Amstrad, elle délivre 5v à 4,2A et 12v à 3A, c'est un bloc LaCie pour une enclosure HD externe je pense, donc ça devrait aller.

Re: Extension FPU pour CPC

Publié : 17 juin 2023 09:26
par wawa.voun
oui avec plus de 4 A sur le 5 v c'est ok à mon avis.
Le CPC est donné à 1.7 A plus la carte FPU entre 0.4 et 0.5 A donc ça passe avec de la marge !

Re: Extension FPU pour CPC

Publié : 26 juin 2023 08:27
par OnceCéd
Bonjour,

En novembre je lance un magazine sur l'intégralité de la gamme Amstrad, entre autres choses.

Je serais bien intéressé de discuter avec toi concernant cette carte d'extension. Histoire de bien comprendre toute son importance et son utilisation et pourquoi pas en faire un petit emplacement dans le magazine ?

Je suis à la recherche de toutes informations intéressantes sur ce qui se fait aujourd'hui et qui est facilement procurable pour les "Amstradistes".

En te remerciant par avance,
Oncle Céd (pour CPC-Anachronie, ce sera le nom du magazine)