Extension FPU pour CPC
Modérateurs : Papy.G, fneck, Carl
Extension FPU pour CPC
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 ?
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
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 ?
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 !
Re: Extension FPU pour CPC
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.
Re: Extension FPU pour CPC
Bonjour Philippe,
Comme d'habitude j'en suis!
Bonne journée
Jean-François
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
Jean-François
Re: Extension FPU pour CPC
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).
Re: Extension FPU pour CPC
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
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 !
Re: Extension FPU pour CPC
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.
Ç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é 53 fois
-
- Gerbers_V2.0.zip
- (39.28 Kio) Téléchargé 49 fois
Dernière modification par wawa.voun le 04 juin 2023 20:13, modifié 2 fois.
Someday I'll get you, Red Baron !
- Leraptor06
- Messages : 689
- Inscription : 15 févr. 2022 10:34
- Localisation : Mandelieu
Re: Extension FPU pour CPC
Oui superbe travail. Je t'ai répondu pour l'envoi de la carte v1. Bravo
Re: Extension FPU pour CPC
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
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 (725.04 Kio) Consulté 2494 fois
-
- IMG_20230603_165646_LR.jpg (868.94 Kio) Consulté 2494 fois
Someday I'll get you, Red Baron !
Re: Extension FPU pour CPC
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.
Re: Extension FPU pour CPC
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...
À 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).
- Leraptor06
- Messages : 689
- Inscription : 15 févr. 2022 10:34
- Localisation : Mandelieu
Re: Extension FPU pour CPC
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
Re: Extension FPU pour CPC
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.
- Leraptor06
- Messages : 689
- Inscription : 15 févr. 2022 10:34
- Localisation : Mandelieu
Re: Extension FPU pour CPC
J'imagine ce type de carte adapté a d'autres ordinosaures avec des basic patches, ce serait interessant .
Jp
-
- Messages : 7986
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Extension FPU pour CPC
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
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos