Extension FPU pour CPC

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

Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: Extension FPU pour CPC

Message 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.
Brochiman
Messages : 3405
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: Extension FPU pour CPC

Message par Brochiman »

Fred tu m'as dis que tu t'ennuyais dernièrement.... :lol: :lol: :lol:
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: Extension FPU pour CPC

Message 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
Jp
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: Extension FPU pour CPC

Message par Fred_72 »

@Brochiman: Tu m'as déjà donné du travail à faire donc ça va, je ne m'ennuie pas :D
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: Extension FPU pour CPC

Message par Zebulon »

Merci Philippe j'ai bien reçu le courrier aujourd'hui. :D
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: Extension FPU pour CPC

Message 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
Someday I'll get you, Red Baron !
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: Extension FPU pour CPC

Message 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:
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: Extension FPU pour CPC

Message 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).
Someday I'll get you, Red Baron !
Avatar de l’utilisateur
jeffounet
Messages : 1563
Inscription : 25 janv. 2020 06:59
Localisation : Les Angles (30)

Re: Extension FPU pour CPC

Message par jeffounet »

Bonjour Philippe,

J'ai bien reçu le circuit imprimé.
Merci
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
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: Extension FPU pour CPC

Message 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
Pièces jointes
AM9511_Z80_LIB.zip
(3.86 Kio) Téléchargé 30 fois
Someday I'll get you, Red Baron !
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: Extension FPU pour CPC

Message 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.
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: Extension FPU pour CPC

Message 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...
Pièces jointes
CPC_Microsoft_.zip
(274.1 Kio) Téléchargé 25 fois
CPC_Microsoft_M80_APU..zip
(84.82 Kio) Téléchargé 27 fois
Dernière modification par wawa.voun le 20 juin 2023 17:08, modifié 1 fois.
Someday I'll get you, Red Baron !
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: Extension FPU pour CPC

Message 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.
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: Extension FPU pour CPC

Message 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 !
Someday I'll get you, Red Baron !
OnceCéd
Messages : 1
Inscription : 26 juin 2023 08:20

Re: Extension FPU pour CPC

Message 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)
Répondre