|
||||
Le formattage des disquettes d'APPLE est tr�s particulier en ce sens qu'il ne fait pas appel � un syst�me
externe pour signaler au programme de lecture qu'il va arriver sur une zone de donn�es. C'est un formattage
EXCLUSIVEMENT LOGICIEL.
|
||||
D�coupage de la disquette en pistes | ||||
Les disquettes 5'25 sont formatt�es en 35 pistes (soit $23 pistes num�rot�es de $00 � $22), la piste 0 est la plus ext�rieure et la piste 35 la plus int�rieure. Le catalogue de la disquette est plac� sur la piste 17 ($11). Il n'y a pas de variation de la vitesse du moteur pour chaque piste, la vitesse reste la m�me pour chacune. |
||||
Hacking corner | ||||
1. certaines protections utilisent ce que l'on appelle une extra-piste � savoir la piste $23 qui n'est pas accessible par le DOS normal. Ce type de protection fait partie des premiers trucs et astuces mais pr�sente l'inconv�nient de ne pas fonctionner sur tous les lecteurs de disquettes. 2. Nous verrons dans la section "d�placement de la t�te de lecture" qu'il est possible d'�crire sur ce qui est appel� les inter-pistes ou demi-pistes, voir les quarts de pistes ! En effet la r�solution magn�tique de la t�te de lecture est telle qu'elle impose une distance minimale entre deux pistes... or le moteur utilis� en pas � pas permet des d�placements tels qu'il est possible de se d�placer d'une demi-piste. Pour le quart de piste c'est un probl�me de timing qu'il convient de mettre en oeuvre. MAIS il faut TOUJOURS un espace d'une piste entre deux zones d'�criture, demi-piste ou quart de piste... 3. Il existe un bricolage simple � faire pour voir les pistes qui sont utilis�es par un programme... utile quand on ne sait pas s'il va sur la $23, fait des 1/2 des 1/4 de pistes, du track arcing etc... Pas cher, juste un feutre un programme comme locksmith bref on apprend comment rep�rer les pistes. 4. Une technique de protection consiste � ce qui s'appelle la synchronisation des pistes qui n'a STRICTEMENT RIEN A VOIR AVEC LA SYNCHRONISATION DE LECTURE telle qu'expliqu�e en rubrique "synchronisation" mais QUI A TOUT A VOIR AVEC LA RUBRIQUE "synchronisation des pistes" |
||||
D�coupage des pistes en secteurs | ||||
Les pistes sont d�coup�es artificiellement en secteurs. Il y a : 13 secteurs en DOS 3.2 16 secteurs en DOS 3.3, PASCAL et la plupart des autres OS . La taille d'un secteur correspond � un nombre de nibbles variable selon le codage mais dont le r�sultat correspond normalement � une page de 256 octets en m�moire. Chaque secteur est pr�c�d� et suivi par des nibbles dits de synchronisation. |
||||
Hacking corner | ||||
Evidement vous avez compris que l� encore des syst�mes de protection utilisent un nombre variable de secteurs par piste ou modifient la taille des secteurs... les combinaisons sont alors infinies. Des exemples vous sont donn�s dans la rubrique "formats exotiques" |
||||
D�coupage des secteurs en deux champs | ||||
Lors de l'initialisation de la disquette la routine de formattage �crit donc 16 secteurs sur chaque piste. Chaque secteur se d�compose en 2 parties bien distinctes s�par�es par des nibbles de synchronisation, ce sont : Le champ adresse, qui est �crit lors de l'initialisation, il n'est plus modifi� par la suite Le champ des donn�es, qui est �crit certes � l'initialisation mais qui lui peut �tre bien evidemment r��crit pour enregistrer les modifications de donn�es. Le d�but de ces champs est identifi� par une s�quence de nibbles bien pr�cis (l'ent�te) qui sont : Pour le champ adresse : D5 AA 96 Pour le champ donn�es : D5 AA AD Pour savoir comment se fait la d�tection de ces champs, il faut aller voir la section "synchronisation" ORDRE PHYSIQUE ET ORDRE LOGIQUE : Il faut savoir que les secteurs ont un ordre physique 0,1,2,3,4 etc... qui ne correspond pas � l'ordre logique. Qu'est-ce qu'un ordre logique ? En fait pendant le temps mis par le syst�me d'exploitation pour d�coder les donn�es enregistr�es, la disquette continue � tourner et �videment le secteur physique qui suit celui en cours de d�codage est d�pass� depuis longtemps, donc pour optimiser le temps de lecture l'ordre logique est celui qui permet de charger les secteurs dans un ordre d�fini de fa�on telle qu'� la fin du d�codage de l'un la t�te de lecture se trouve en mesure de lire le premier secteur physique qu'elle rencontre : c'est ce qui s'appelle l'INTERLEAVING et qui est d�crit en d�tail dans la rubrique astucieusement nomm�e "Interleaving..." |
||||
Hacking corner | ||||
D'astucieux syst�mes de protection n'utilisent pas syst�matiquement des champs s�par�s adresse/donn�es. Ils se
contentent de markers d'ent�te et �ventuellement d'un rep�rage simpliste de piste/secteur
|
||||
Le champ adresse | ||||
Il est important de bien noter que le champ des donn�es est ECRIT UNE SEULE FOIS lors de l'initialisation. Si la disquette a �t� formatt�e il y a 20 ans le champ adresse a �t� �crit il y a 20 ans... ce qui n'est pas n�cessairement le cas du champ des donn�es qui est r��crit � chaque mise � jour. | ||||
Le champ adresse est compos� : d'un ent�te d'un num�ro de volume d'un num�ro de piste d'un num�ro de secteur d'un checksum d'une sequence finale |
DOS 3.3 D5 AA 96 XX YY XX YY XX YY XX YY DE AA EB |
2 nibbles cod�s 4.4 2 nibbles cod�s 4.4 2 nibbles cod�s 4.4 2 nibbles cod�s 4.4 |
DOS 3.2 D5 AA B5 XX YY XX YY XX YY XX YY DE AA EB |
|
Le champ des donn�es | ||||
Il est important de bien noter que le champ des donn�es est SYSTEMATIQUEMENT pr�c�d� par 5 $FF de synchronisation lors de CHAQUE r��criture ce qui cause des chevauchements de champs magn�tiques de fa�on al�atoire et que nous verrons plus loin. | ||||
Le champ des donn�es est compos� : d'un ent�te des donn�es elles m�mes d'un checksum d'une sequence finale |
DOS 3.3 D5 AA AD 342 nibbles cod�s 6.2 1 nibble cod� 6.2 DE AA EB |
|
DOS 3.2 D5 AA AD 410 nibbles cod�s 5.3 1 nibble cod� 5.3 DE AA EB |
|
Il n'est pas inutile de pr�ciser ici que les valeurs $FF de synchronisation sont �crites en 40 cycles et de ce fait vous avez sur la disquette deux 0 suppl�mentaires derri�re les 1 du $FF. On a donc un $FF �crit en 10 bits soit 1111.1111.00 (les points ne sont l� que pour la lisibilit� �videment). Les raisons sont expliqu�es dans la section "synchronisation" Nous verrons dans l'examen attentif (enfin j'esp�re) de la routine d'�criture du champ adresse du DOS 3.3 que le $EB ne peut JAMAIS �tre �crit correctement... et que de tout fa�on il n'est pas test� en relecture ! |
||||
Hacking corner | ||||
Bien s�r si vous changez les markers vous rendez non copiable par le programme standard COPYA ou les programmes non sp�cifiques votre disquette. Vous avez UNE CONTRAINTE : le secteur 0 de la piste 0 DOIT ETRE ECRIT AVEC LES MARKERS STANDARD... sinon la disquette ne peut pas �tre charg�e. C'est l� le talon d'achille de TOUTES LES PROTECTIONS car cela permet de mettre en oeuvre la technique du trac� de boot qui est IMPARABLE... mais cela ne signifie pas pour autant que la suite est facile ! Le d�tail de cette technique est expliqu�e plus loin dans la section "Bootstrap" |
||||
INITIALISATION ET REECRITURE | ||||
Pour initialiser une disquette vous chargez un DOS et tapez la commande : INIT HELLO suivi de RETURN Notas importants: 1. HELLO est le nom du programme BASIC qui sera lanc� quand votre disquette bootera sur l'APPLE II. Vous pouvez choisir tout autre nom cela n'a pas d'importance. Ce programme BASIC est celui pr�sent en m�moire lors de la commande INIT �videment, s'il n'y en a pas eh bien vous aurez quand m�me un fichier basic HELLO ... mais vide. 2. Vous pouvez remplacer le programme HELLO en l'effa�ant et en renommant par HELLO celui que vous voudrez voir lanc�. (comme dit ci-dessus, si vous avez fait l'INIT avec TARZAN alors ce sera TARZAN qu'il faudra utiliser pour le renommage. 3. Sauf avec des utilitaires sp�cifiques (COPY II PLUS par exemple) vous ne pouvez pas changer le nom de fichier choisi avec la commande INIT. |
||||
Hacking corner | ||||
Lors de l'initialisation les pistes sont formatt�es une fois pour toute en ce qui concerne les champs adresse. Pour ce qui est des champs datas ils sont �crits certes � l'initialisation mais ensuite r��crits chaque fois qu'il y a besoin... ce qui explique la pr�sence de zones magn�tiques instables entre les champs adresse et data. Sur le dessin il est pr�cis� que l'on r�-�crit les donn�es une premi�re fois avec un drive lent puis une seconde fois avec un drive rapide mais gardez toutefois � l'esprit que c'est ce qui se passe sur un m�me lecteur.. il y a toujours de zones de recouvrement des champs magn�tiques qui sont des zones instables. Ces zones d'instabilit� d�synchronisent la lecture c'est pourquoi on r��crit toujours le champ des donn�es en commen�ant par r��crire des $FF de synchronisation. Le probl�me ne se pose JAMAIS pour les champs adresse car ils sont �crits une fois pour toute... jusqu'� ce la disquette d�raille. |
||||
|
||||
|