AMSTRAD GX4000 FORUM Index du Forum

AMSTRAD GX4000 FORUM


 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

informations FDC
Aller à la page: 1, 2, 3  >
 
Poster un nouveau sujet   Répondre au sujet    AMSTRAD GX4000 FORUM Index du Forum -> DIVERS -> Hardware
Sujet précédent :: Sujet suivant  
Auteur Message
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-07-30, 00:16    Sujet du message: informations FDC Répondre en citant

Ceci est un petit appel à la communauté de 3 programmeurs et deux tondus


Vous avez de l'info sérieuse sur le FDC?


Pour le moment le mieux que j'ai trouvé se trouve ici: http://cpcrulez.fr/coding_fdc-01-fonctionnement_FDC__SOSP.htm


Il y a une quarantaine d'articles plus ou moins intéressants, pas mal d'explications, de cas particuliers, mais ça manque cruellement d'informations de timing et en prime le code est truffé de conneries en plus d'être illisible. Bon, de toutes façons c'était pas trop le code qui m'intéressait. J'essaie de croiser l'information avec d'autres sources mais ce que je trouve ailleurs est très très très limité (Articles d'A100% sur le FDC par exemple).


J'ai commencé à pisser de la ligne pour faire quelque chose de propre ET robuste, on est loin du code d'A100% et assimilé niveau gestion d'erreur!


Bon, j'y retourne. Pipiiiiiiiiiiiiiiiiiiiii!
Revenir en haut
Publicité






MessagePosté le: 2016-07-30, 00:16    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
GOB
Administrateur

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 1 585

MessagePosté le: 2016-07-30, 11:42    Sujet du message: informations FDC Répondre en citant

Perso le fdc j'utilisais déjà pas beaucoup avant, mais alors plus du tout maintenant...

Cela dit, le mieux je pense est déjà de regarder du coté de chez Targhan: http://www.julien-nevo.com/arkos/tools.html
Tu y trouveras par exemple sont FDC Tool: http://www.julien-nevo.com/arkos/tools/FDCTools.zip

Ya les sources donc ca devrait t'aider pas mal. Sinon le mieux est sans doute de contacter Targhan directement. Sinon ya Shap ou Madram qui t'aideront.
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-01, 08:20    Sujet du message: informations FDC Répondre en citant

Le peu que j'ai vu du FDCTools de Targhan, c'est une repompe des sources d'A100%, aucun intérêt. Déjà que ceux d'A100% en présentaient peu (sauf pour une démo, et encore)


Quand tu lis l'interview d'Arnold qui a fait le loader musical de la démo Batman, ça fait peur: En gros il a fait aussi porc que les autres, il lance des commandes au FDC et il espère que celui-ci soit près au moment où il en a besoin. Sachant qu'il a désassemblé un peu tout ce qu'ont fait les autres, il en conclu: Je fais pareil que les autres, du bricolage dégueulasse qui fonctionne.


Je vais contacter Shap, je crois qu'il s'était amusé à tester les limites de la puce (niveau timing)
Revenir en haut
GOB
Administrateur

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 1 585

MessagePosté le: 2016-08-01, 11:05    Sujet du message: informations FDC Répondre en citant

Shap avait testé au moins pour faire avec RAM7 une interface d'émulation du lecteur D7 (va savoir ce que c'est devenu). Il a testé tous les timing normalement. Donc il devrait effectivement pouvoir te répondre Wink
Tiens nous au jus. Ca serait pas mal de faire une vraie doc la dessus.
Revenir en haut
Ast
Invité

Hors ligne




MessagePosté le: 2016-08-01, 11:57    Sujet du message: informations FDC Répondre en citant

Az

Dernière édition par Ast le 2016-10-31, 00:52; édité 1 fois
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-01, 13:32    Sujet du message: informations FDC Répondre en citant

Ast a écrit:
J'avais fait pas mal d'essais après la lecture de ceci. J'espère que cela permettra de t'amuser. Mais au fait, tu veux faire quoi au juste ???


Je te remercie pour le lien, c'est vrai que je n'ai pas pensé à fouiner chez Quasar, je vais croiser les informations avec celles d'SOS programmeurs!


Je ne sais pas vraiment pourquoi, les possibilités sont grandes!


Disons que je m'y intéresse dans une optique large: Avoir des outils propres et robustes


Mais il est évident qu'en comprenant bien comment il fonctionne on doit pouvoir faire un loader musical qui n'ait pas de contrainte sectorielle ou de lenteur affligeante comme ce qui existe actuellement (de façon publique ou diffusée j'entends)


Et pourquoi pas (Shap prétendait l'avoir fait) un loader avec des samples sur CPC eud'base


Au niveau de la robustesse, faire son propre loader permet aussi d'intégrer des mécanismes qu'on rencontre sur des contrôleurs RAID pour corriger les erreurs, voir reconstruire un disque 100% propre à partir d'une disquette partiellement défectueuse.


Etc.
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-07, 10:21    Sujet du message: informations FDC Répondre en citant

Bon, j'ai fini par avancer un peu (et compris ce que je faisais) en croisant les informations contradictoires d'un peu tout le monde.


Genre le bit 7 du registre d'état 1 était décrit comme "secteur de fin de piste manquant" alors que ça voudrait plutôt dire "on a atteint la fin de la piste" et ce n'est pas une erreur en soi, donc pas à la traiter


Pour le moment, rien de spécialement innovant, la routine de lecture fonctionne, le choix de piste aussi. Le formatage utilisé pour les tests est celui des routines d'A100% version 5 secteurs de taille 3 mais la routine peut lire n'importe quoi (encore heureux). Comme la lecture se fait "en ligne", c'est trèèèèèèèèèèèès rapide mais une fois encore, rien d'innovant rapport aux routines d'A100%, on lit à la vitesse maximum physique, on n'ira jamais plus vite que la vitesse de rotation du lecteur de disquette.


Par contre, je gère déjà un peu toutes les erreurs possibles: Disquette manquante, erreur mécanique, drive déconnecté, read fail, synchro error (cette erreur sera utile pour faire un lecteur musical), secteur non trouvé, wrong format, wrong id, erreur de lecture/écriture (checksum hardware KO), description de piste merdique, ...


Ah oui, je gère aussi le lecteur B externe déconnecté! (ça pose de gros problèmes si on ne le gère pas)

La plupart des erreurs ne sont supposées servir que si on s'amuse à faire des formatages chelouds, ce qui est prévu par les routines en cours. À savoir qu'on va pouvoir faire des formatages standards et des formatages écrasés, à la façon de ce que permet de faire Disc+Ultra, mais il n'est pas prévu pour le moment de faire un système qui permet de reproduire les secteurs de taille 6 vu qu'en fonction du matériel les résultats seraient très aléatoires. Par contre, les formats un peu plus spéciaux permettraient de se faire plaisir dans une démo, ne serait-ce que parce que les émulateurs risquent facilement de se retrouver aux fraises.


Voilà où j'en suis. Les sources en l'état ne sont pas publiables vu que je modifie encore beaucoup trop de choses, que je factorise du code et qu'il manque des commandes à programmer.


Quand j'aurais fait une belle librairie, je diffuserai le gros paquet. (Les curieux pressés peuvent toujours me demander par MP)


Mais j'aimerai au minimum faire un loader musical fonctionnel ET rapide, ce qui n'existe pas pour le moment, à ma connaissance.


Stay in touch!


Revenir en haut
GOB
Administrateur

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 1 585

MessagePosté le: 2016-08-07, 11:04    Sujet du message: informations FDC Répondre en citant

T'es certains que ca n'existe pas ? Targhan a bien du faire ca dans ces demos(j'pense à celle ou t'as la scène 3D qu'il lit en direct sur la D7) et son jeu Orion Prime.

Tes sources c'est pas important; de la doc c'est mieux !!!
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-07, 11:49    Sujet du message: informations FDC Répondre en citant

GOB a écrit:
T'es certains que ca n'existe pas ? Targhan a bien du faire ca dans ces demos(j'pense à celle ou t'as la scène 3D qu'il lit en direct sur la D7) et son jeu Orion Prime.

Tes sources c'est pas important; de la doc c'est mieux !!!




Je fais confiance à Arnold qui a désassemblé tout ce qui existait avant de faire la même pseudo-gruge que les autres. Il avait d'ailleurs dit qu'il publierai les sources, on n'a toujours rien vu venir. Ceci dit, vu la gruge utilisée, j'sais pas si il y a besoin de publier quoique ce soit. 


EDIT: Donc en gros, pour faire simple, ce qui existe, c'est la musique en priorité et le FDC a le droit de faire quelque chose si il est dans des conditions idéales (ce qui arrive rarement -> donc c'est lent)
Ce que je vais tenter de faire, c'est de laisser la priorité au FDC pour faire ce qu'il veut quand il veut et jouer la musique à 50Hz en actualisant les registres AY entre deux données FDC


Un lecteur de disquette c'est 300 tours/minute donc 5 tours secondes ou encore environ 30k par seconde de données. Ça nous fait environ 30 nops par octet lu. Il faut donc dans ces 30 nops (avec la tolérance hein) pouvoir à la fois lire les données du FDC et envoyer quelque chose à l'AY Smile
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-07, 13:28    Sujet du message: informations FDC Répondre en citant

Et pour répondre à ta remarque, le plus difficile c'est justement de pondre le code, pas tant que ça de faire de la doc (même si une bonne doc manque sur le FDC)


Le postulat de base est simple. On doit dialoguer avec le PSG pendant que le FDC vit sa vie. Ça c'est la doc. La réalisation est tout autre (pour ça que personne n'a diffusé un truc le faisant jusqu'à présent)






Bon, j'viens d'aller sur Quasar, pour voir comment on écrivait dans un registre AY, faut balancer 6 outs




OUT &F4xx,numéro de registre
OUT &F6xx,&C0 ' Lecture du registre par le PSG
OUT &F6xx,0   ' Validation de la donnée
OUT &F4xx,valeur
OUT &F6xx,&80 ' Lecture du data par le PSG
OUT &F6xx,0   ' Validation de la donnée



Sauf qu'on n'a PAS le temps de le faire, donc il va falloir segmenter le code. À vue de nez en deux. On doit pouvoir dire bonjour au FDC pendant que le PSG attend la validation de sa donnée.


Je pense donc faire un loader avec un sample joué en fond pour commencer. Si paradoxalement ça parait plus compliqué à faire que jouer une musique, c'est tout le contraire!


À bientôt Wink
Revenir en haut
GOB
Administrateur

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 1 585

MessagePosté le: 2016-08-07, 21:05    Sujet du message: informations FDC Répondre en citant

Bein écoute, j'te souhaite d'y arriver Smile
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-07, 22:28    Sujet du message: informations FDC Répondre en citant

pour le moment, j'ai coupé mon code qui joue le sample en 4 et j'ai une mini machine à état, mais mes routines font entre 17 et 20 nops, ce qui est beaucoup trop...
la sentence n'a pas tardé -> you're too slow!!! (ET1 bit 4)
bon, faut dire que je cherche un peu les noises là, faudrait que je spécule un peu plus
après tout, si la donnée n'était pas présente et que je consomme 20 nops, j'ai pas besoin de tester si elle est là, elle sera là Smile  (sauf pour le 1er octet du secteur, qu'il faut attendre alors...)
Revenir en haut
GOB
Administrateur

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 1 585

MessagePosté le: 2016-08-07, 23:31    Sujet du message: informations FDC Répondre en citant

Je comprend pas... Ta donnée tu la lis non ? Alors comment être certain qu'elle soit la ? ou alors tu t'en fout ?
Revenir en haut
moudubou


Hors ligne

Inscrit le: 05 Avr 2013
Messages: 109
Localisation: Lugdunum

MessagePosté le: 2016-08-08, 08:31    Sujet du message: informations FDC Répondre en citant

GOB a écrit:
Je comprend pas... Ta donnée tu la lis non ? Alors comment être certain qu'elle soit la ? ou alors tu t'en fout ?




Ça se passe en deux temps


La boucle typique de lecture du FDC fait trois choses


Deux tests, une lecture


D'abord on teste qu'une donnée est disponible, ensuite on teste que la donnée est bien de la donnée lue et pas les x octets d'état renvoyés en fin d'instruction.


Les gros porcs enlèveraient le deuxième test parce qu'à après tout, on sait ce qu'on fait, c'est censé fonctionner, etc.


J'suis pas très chaud pour ça.


Ensuite, quand les deux tests sont concluants, on lit la donnée, on la fout en mémoire et on recommence.


Donc ta routine c'est ça



 
Code:
FDC_GenericReadDataLoop
in a,(c)
jp p,FDC_GenericReadDataLoop
and FDCMainStateIsData ; until we have datas!
ret z
inc c
in a,(c)
dec c
ld (hl),a
inc hl
jr FDC_GenericReadDataLoop

 




LE truc que tu sais par contre, c'est que si au premier test ta donnée n'est pas prête, tu as au moins 28 nops pour faire ce que tu veux, car le lecteur de disquette a une vitesse maximum, les données ne peuvent pas arriver plus vite qu'elles sont lues. Tu sais aussi que si tu as encore des données à lire, le test de disponibilité est facultatif (mais pour rester propre, pas celui qui te dit si c'est de la donnée ou des registres d'état).


Donc le tout est de mixer intelligemment la lecture du sample avec la lecture FDC, en sachant que c'est le FDC qui est prioritaire! Ce qui n'est pas vraiment gênant pour du sample, à part qu'au lieu d'avoir la fréquence habituelle asservie au CRTC on sera asservi au FDC, donc avec une fréquence un peu batarde, autour de 9KHz (ou un multiple inférieur/supérieur).


Y a un autre truc que je n'ai pas testé avec le sample, c'est de n'envoyer le registre de volume qu'une seule fois et ensuite, n'envoyer que des données...


Ça me fera un code beaucoup plus court


Et puis là j'ai mis des CALL partout au lieu de faire des spaghettis  Twisted Evil


Nouveaux tests ce soir!
Revenir en haut
GOB
Administrateur

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 1 585

MessagePosté le: 2016-08-08, 11:31    Sujet du message: informations FDC Répondre en citant

Ok dac je vois. Intéressant tout ca Smile
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 14:43    Sujet du message: informations FDC

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    AMSTRAD GX4000 FORUM Index du Forum -> DIVERS -> Hardware Toutes les heures sont au format GMT + 2 Heures
Aller à la page: 1, 2, 3  >
Page 1 sur 3

 
Sauter vers:  

Index | Panneau d’administration | créer un forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com