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

Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Extension FPU pour CPC

Message par wawa.voun »

Bonjour à tous,

Y a t il des personnes intéressées par un pcb vierge permettant de réaliser une carte Floating Point Unit pour Amstrad CPC ?

Screenshot_20230513_085751.jpg
Screenshot_20230513_085751.jpg (336.83 Kio) Consulté 2821 fois

Le design est fait sur la base d'une note d'application AMD.
La carte est prévue pour se raccorder sur une extension type X4 avec connecteur IDC 2x25.
Elle peut recevoir soit un AM9511 soit un AM9512 (ou équivalent Intel) configurable par 3 jumpers.
L'horloge est configurable en 2 MHz (en général AMD) ou 4 MHz (Intel) (1 jumper).
Le décodage d'adresse est complet donc l'adresse peut être réglée entre $0000 et $FFFF, pas de surprise possible (le décodage d'adresse interne des CPC est assez mal documenté) ! La carte occupe deux adresses successives (control et data).
Le 12 V est fabriqué 'on board' à partir du 5 V.

Je teste la première avant paiement et avant de poster. Selon les résultats vous confirmerez ou pas...

La librairie créée pour l'Apple IIe sera utilisable (avec AM9511) sous CPM. Si vous installez un AM9512 il faudra coder, pareil en Locomotive Basic.

Cordialement.
Philippe
Dernière modification par wawa.voun le 13 mai 2023 11:01, 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 »

Bravo pour tout ce travail et sûr que j'en suis avec deux cartes. Donc si je comprends bien il va falloir écrire du code pour s'interfacer avec la puce. Belle aventure. :D
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,

Comme d'habitude j'en suis!

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
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: Extension FPU pour CPC

Message par Notator »

Zebulon a écrit : 13 mai 2023 09:36 Donc si je comprends bien il va falloir écrire du code pour s'interfacer avec la puce.
Ben oui. Comme le FPU n'est pas natif du CPC, aucun programme de sa bibliothèque ne s'en sert. :?
Il ne pourra servir que pour des programmes persos, ou modifiés.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
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 »

Re,

Le fonctionnement de la puce est assez simple à comprendre :

1- on empile les opérandes via un registre (data en écriture)
2- on envoie ensuite le code de commande de l'opération à faire dans un autre registre (control en écriture)
3- on surveille le statut de la puce (registre control en lecture) ou on attend une interruption (non prévue sur ma carte)
4- on dépile les résultats (registre data en lecture).

Le truc c'est le format des nombres flottants.
Le 9511 accepte les flottants 32 bits (real) mais dans un format pas standard donc il faut faire des conversions parce que les langages de programmation respectent le format IEEE en général. Il n'accepte pas les flottants 64 bits (double). Par contre il sait faire des sin, cos, exp etc...
Le 9512 accepte les flottants 32 bits et les 64 bits en format IEEE mais ne fait que les quatre opérations de base.

Selon mon expérience de l'analyse numérique (depuis 40 ans que je calcule des champs magnétiques elle est assez importante) le 9512 est beaucoup plus intéressant en calcul intensif.
C'est rare qu'on ait à calculer des fonctions comme sin, cos... dans des boucles répétitives. Par contre des +, -, * et / en rafale sur des doubles ça peut se compter par millions dans un programme.

L'AM9512 et l'Intel C8232 sont quasi introuvables mais ma carte pourra les utiliser au cas ou.

Voir ici un exemple de librairie 8080 (ou Z80 donc) pour AM9511 : https://github.com/ratboy666/apu

Philippe
Someday I'll get you, Red Baron !
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,

Ça y est cette carte fonctionne ! Elle passe les tests de base.

Pour les intéressés les gerber sont ci joint. Dans le 2ème zip il y a la bom et le schéma en pdf.

Une librairie pour l'utiliser verra le jour sous peu.

Cordialement.
Philippe

Modifié le 4/6/23 rajout du schéma en plus de la nomenclature.
Pièces jointes
CPC_FPU_schematic_bom.zip
(620.31 Kio) Téléchargé 50 fois
Gerbers_V2.0.zip
(39.28 Kio) Téléchargé 47 fois
Dernière modification par wawa.voun le 04 juin 2023 20:13, modifié 2 fois.
Someday I'll get you, Red Baron !
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: Extension FPU pour CPC

Message par Leraptor06 »

Super!
Bravo et merci de ton partage.
Jp
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: Extension FPU pour CPC

Message par Zebulon »

Oui superbe travail. Je t'ai répondu pour l'envoi de la carte v1. Bravo :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,

Deux photos pour montrer comment installer les diodes sur le pcb V1.
Sur le pcb V2 (gerbers ci dessus) les emplacements pour les diodes sont prévus.

Cordialement.
Philippe
Pièces jointes
IMG_20230603_165746 LR.jpg
IMG_20230603_165746 LR.jpg (725.04 Kio) Consulté 2426 fois
IMG_20230603_165646_LR.jpg
IMG_20230603_165646_LR.jpg (868.94 Kio) Consulté 2426 fois
Someday I'll get you, Red Baron !
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Extension FPU pour CPC

Message par hlide »

Notator a écrit : 13 mai 2023 13:16 Ben oui. Comme le FPU n'est pas natif du CPC, aucun programme de sa bibliothèque ne s'en sert. :?
Il ne pourra servir que pour des programmes persos, ou modifiés.
A tout le moins, on pourrait envisager un BASIC patché pour que le calcul des nombres puisse être fait par ce FPU avec le soucis quand même du format du nombre interne au BASIC.
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: Extension FPU pour CPC

Message par Notator »

Certes, mais même chose, comme le BASIC patché ne serait pas natif, les instructions supplémentaires ne pourraient servir que pour des programmes persos...
À moins de s'astreindre à modifier aussi les programmes en BASIC existants... :?
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: Extension FPU pour CPC

Message par Leraptor06 »

J'aurai cru avec l'idee de hlide qu'une fonction mathematique aurait la même syntaxe et que ce serait juste les appels des sous routines qui serait differentes. De maniere transparente pour le basic.
Jp
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Extension FPU pour CPC

Message par hlide »

Oui, c'est tout à fait ça mais j'ignore le gain à le faire ainsi puisqu'il y aurait des opérations intermédiaires en interne à cause de la différence de format. Le gain plus manifeste serait sans doute au moins sur le * et /, enfin je crois.
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: Extension FPU pour CPC

Message par Leraptor06 »

J'imagine ce type de carte adapté a d'autres ordinosaures avec des basic patches, ce serait interessant .
Jp
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Extension FPU pour CPC

Message par __sam__ »

Paradoxalement la multiplication est plus facile à faire au format IEEE que l'addition grace à la normalisation du format. A l'inverse l'addition/soustraction nécessite d'aligner les deux mantisse, et donc plein de décalages couteux à faire, et il faut renormaliser le résultat en sortie. Un gouffre à cycle les + et - en virgule flottante.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre