30



en effet je lit le secteur sur la sdcard puis je l'encode MFM et le serialise ,
en supprimant l'étape endodage mfm et donc en lisant directement les données encodées mfm sur la sdcard cela me simplifierais la tache , le debit peut etre tenue sans problème et etre variable de surcroit.


31

ok,

Je viens juste d'ajouter a mon soft la possibilité de créer un fichier contenant les tracks mfm à partir des images disques chargées dans le soft :
Atari : ST / MSA
Amiga: ADF / DMS / IPF (sur ce format le résultat n'est pas encore garanti ;-)
PC : CopyQM (DSK), IMG.
CPC : (E)DSK

Tu peux télécharger le soft ici :
http://hxc2001.free.fr/floppy_drive_emulator/HxCFloppyEmulator_soft.zip

Tu dézippes, démarres l’application. Tu peux ensuite faire un drag and drop de ton fichier image puis aller dans Disk-> "Write MFM file" pour créer le fichier MFM. (Tu peux ignorer le message d ‘erreur concernant le driver FTDI ou la non présence de l’interface).

Voici le format du fichier crée:
Il s'agit bien sur d'un format expérimental et minimaliste qui aura besoin d'être étoffé:

Au début du fichier on trouve cet en-tête :

typedef struct MFMIMGHEADER_
{
byte headername [ 7 ]; // Chaîne de caractère contenant HXCMFM\0

word number_of_track; // nombre de piste dans le fichier
byte number_of_side; // nombre de face par piste

word floppyRPM; // rotation par minute
word floppyBitRate; // bitrate (en milliers de bit /s )
byte floppyiftype; // mode de l’interface floppy : 1=shuggart 2=ibm pc

dword mfmtracklistoffset; // offset dans le fichier de la liste des descripteurs des pistes.
} MFMIMGHEADER;

mfmtracklistoffset pointe sur un tableau de structure contenant les informations permettant de retrouver le flux mfm dans le fichier :
ce tableau contient number_of_track* number_of_side elements.

typedef struct MFMTRACKIMG_
{
word track_number; // numéro de la piste
byte side_number; // face
dword mfmtracksize; // taille du flux mfm de la piste en octet
dword mfmtrackoffset; // position dans le fichier du flux mfm
}MFMTRACKIMG;

La suite du fichier contient les tracks pré-encodées prêtes à être sérialisées.

Comme tu peux t’en douter chaque bit mfm est encodé sur 2 bits : les patterns possibles sont : 10 , 01 , 00. le 1 représentant la position du pulse dans le temps d’un bit mfm. Nous avons donc 4 bits mfm par octet.

Voila

32


super cool!

puis je uttiliser ton format de fichier ?

mème si il doit évoluer , ce format auras le mérite d'etre universel (quelque soit la machine a émuler).

par contre pour aller ecrire en temps réel dedans pas évident mais c'est le prix a payer pour pouvoir tout emuler.

pendant que j'y suis , jai trouvé une sorte de bug sur wd1772:

la périodicité de l'index pulse n'est pas controler (300tr/mn) , ce qui permet de rajouté des secteurs supplementaires

je me suis arreter a 18 secteurs hisroire de pouvoir lire les images disquettes falcon sur un bon vieux ste , le plus rigolo

c'est que le gem gère ce format de disquette sans broncher!!

la rotation tombe a 160 a 180 tr/mn selon la taille des gaps.

si tu as besoin de quelques info pas de pb

33

>puis je uttiliser ton format de fichier ?

Oui bien sur que tu peux l’utiliser.

J’ai modifié le générateur de fichier mfm : la position des pistes sont maintenant alignées a 512 octets dans le fichier mfm pour faciliter la recherche de la piste dans le fichier (un secteur ne pourra plus contenir la fin d’une piste et le début de la suivante).
Cela n’a aucune conséquence sur le format en lui même.

http://hxc2001.free.fr/floppy_drive_emulator/HxCFloppyEmulator_soft.zip

>pendant que j'y suis , jai trouvé une sorte de bug sur wd1772

oui je connais le truc : j’avais même fais des essais avec un rpm a 75 (sur STE), qui permet d'utiliser des floppy ED (36 secteurs 3Mo ). Je crois qu’il s’agit là d’une limite max. Ceci dis tu peux en plus doubler le nombre de piste pour te faire un mini disque dur ;-).
Je ne suis pas sûr que cette « feature » ;-) vienne d’un bug du wd1772, sachant qu’il n’a pas été conçu pour fonctionner a tel ou tel rpm . Je pencherais plutôt pour un timeout utilisé par le TOS pour les accès disques.


34


ok , merci pour le format de fichier.

j'allais te parler de l'alignement sur le fichier mfm, donc c'est déja fait !

le read multiple sur la sdcard va etre possible maintenant.