Les champs magn�tiques
Au d�part le disque souple de la disquette contient des particules magn�tiques, orient�es dans n'importe quel sens. Ces particules sont sur la zone appell�e OXYDE qui repose sur le disque souple lui-m�me qui est en MYLAR. Cela donne (en vue d'artiste car les couleurs ne sont l� que pour faire comprendre)




Le formattage de la disquette (outre le fait qu'il permet d'enregistrer des donn�es servant au rep�rage des pistes et des secteurs) oriente ces particules magn�tiques dans un sens ou un autre... bref met un peu d'ordre dans le souk g�n�ral.




L'enregistrement des 1 et des 0 se fait de fa�on tr�s particuli�re sur APPLE II � savoir que globalement un 1 est mat�rialis� par une inversion du champ magn�tique et un 0 par l'absence de cette mat�rialisation.

Le champ magn�tique sur une piste est normalement parall�le au sens de d�placement, et une inversion de champ lui est inverse (la r�alit� est un peu plus complexe mais cela n'affecte pas la compr�hension). Ces changements de champs magn�tiques sont appel�es transitions magn�tiques et ce sont elles qui sont � la base du syst�me qui permet de d�terminer si on lit un bit 1 ou un bit 0.

Mais... l� o� tout se complique c'est lorsqu'on veut comprendre comment cela se passe.

Pour �crire un champ magn�tique dans un sens ou dans un autre, il suffit d'inverser le courant qui traverse la bobine de la t�te de lecture. Le sch�ma ci-dessous vous montre ce qui se passe sur trois exemples cons�cutifs.



Il faut bien comprendre que ECRITURE et LECTURE sont sym�trique en ce qui concerne les signaux. Le sch�ma ci-dessous explique cette sym�trie. Globalement, pour l'�criture on fait varier le courant dans la bobine de la t�te de fa�on � �crire les champs magn�tiques et pour la lecture ce sont les variations de ces champs magn�tiques qui g�n�rent un courant induit dans la bobine de la t�te de lecture.



LE PRINCIPE DE FONCTIONNEMENT EN LECTURE
1. Les variations des champs magn�tiques pr�sents sur la disquette entra�nent un courant induit � travers la t�te de lecture.

2. Ce courant est alors mis en forme, trait� et analys� par le MC3470 qui g�n�re un signal "pulse" selon le cas

3. Le "logic state sequencer" d�finit la valeur du bit � passer dans le registre de donn�es lors du d�roulement de son code � travers l'encha�nement des s�quences.
Pour le 1 c'est relativement simple, d�s lors qu'il y "pulse" on aura normalement un 1. Mais pour le 0 ? Eh bien en fait le "logic state sequencer" est une machine � �tat qui d�termine � un temps T qu'il y a un 0 d�s lors qu'apr�s un certain d�lai entre le dernier "pulse" re�u et ce moment T, il n' a pas re�u un nouveau signal "pulse". Le point marquant la fin du d�lai est appel� point de d�cision. Il n'est pas le m�me en DOS 3.2 qu'en DOS 3.3. Tout savoir sur LE FONCTIONNEMENT DU SEQUENCER

Pourquoi il n'est pas possible d'�crire plus de deux 0 de suite ?

En effet ce n'est pas tout � fait exact, vous pourriez parfaitement �crire $00 (0000.0000) sur la disquette puisqu'il suffit de passer cette valeur au contr�leur comme s'il s'agissait d'un nibble valide... et il ne la refuserait pas car c'est au programme de contr�ler les valeurs valides ou non !

Mais surtout vous ne pourriez pas la relire correctement pour plusieurs raisons :

1. De fa�on g�n�rale vous ne sauriez jamais o� commence un nibble. En effet si la r�gle du bit 7 � 1 n'�tait pas impos�e, vous seriez incapable de faire la diff�rence entre des bits 0 de nibbles valides et des bits 0 de synchronisation qui n'auraient d'ailleurs aucune signification. Le LSS est d'ailleurs programm� pour ne pas pouvoir lire les valeurs ne commen�ant pas par 1 (cf. l'explication d�taill�e dans le HACKING CORNER de la rubrique FONCTIONNEMENT EN DETAIL DU LSS POUR L'OPERATION "READ").

Alors admettons que vous n'�criviez que des nibbles sup�rieurs � $7F donc de $80 � $FF, et supposons que vous avez �crit des $80 (1000.0000)... il y a encore des probl�mes que nous allons voir en 2,3 et 4 ci-dessous.

2. Sans nier l'influence de la temp�rature, de la vitesse du drive etc... qui font que l'on a des variations magn�tiques non souhait�es, la r�partition de l'oxyde magn�tique n'est pas parfaite sur la disquette. Au niveau miscroscopique vous pourriez voir des amas plus ou moins �pais ce qui entra�ne des champs magn�tiques d'intensit� variable, ce qui g�n�re des variations magn�tiques, faibles certes, mais variations tout de m�me qui constituent ce que l'on appelle du bruit et qui est normalement filtr� par le MC3470.

3. Mais justement une particularit� du circuit Motorola MC3470 est de s'adapter aux niveaux des variations magn�tiques. D�s lors qu'il est trop longtemps sans recevoir de variations il s'adapte en augmentant sa sensibilit�... et il d�tecte alors les fameuses variations d�crites ci-avant... quand il ne les invente pas purement et simplement! Il verrait des signaux l� o� il n'y a normalement rien � voir, et g�n�rerait � tort des "pulse" !

4. Et surtout vous perdriez votre base de temps qui s'appuie justement sur les inversions magn�tiques... la vitesse des lecteurs serait critique. Si on tient compte de l'Alzheimer qui touche le circuit Motorola et qui est expliqu� en 2 et 3 ci-dessus vous comprendrez que cela devient tr�s vite � haut risque.

Hacking corner

Apple a fait le choix de limiter � deux 0 le nombre maximum de bits contigus pour un nibble. Mais ne vous faites pas d'illusions les �diteurs de logiciels ont bien compris que cette limite est th�orique malgr� les r�els risques de relecture impossible et certaines protections utilisent avec un succ�s plus ou moins grand le fait d'�crire non 2 mais 3 z�ros contigus voire plus.

La technique de d�tection de la protection est alors :
soit une statistique d'erreurs
soit une desynchronisation volontaire

En ce qui concerne la statistique d'erreurs cela part du principe que votre programme de copie n'�crira pas autant de 0, il fera un choix et au mieux consid�rera qu'il s'agit d'extra bits, au pire d'une zone recouvrement � la suite de plusieurs �critures.Quand bien m�me votre programme supposerait qu'il s'agit d'extrabits, il n'en placerait en principe que 2 car c'est le nombre normal et � la relecture par la protection il n'y aurait jamais de variations dans la lecture (en clair on relirait toujours la m�me chose sans erreurs) ce qui permettrait � la dite protection de d�terminer qu'il s'agit d'une copie.

Ce principe de protection consistant � d�terminer si on a � faire � un original ou une copie en recherchant non pas une valeur pr�cise mais une erreur soit al�atoire, soit syst�matique se retrouve respectivement :
dans la technique des "weaks bits" utilis�s sur les machines IBM (on lit ces weaks bits tant�t comme des 1 tant�t comme des 0 et ce de fa�on parfaitement al�atoire)
et sur l'immonde et fantaisiste syst�me PROLOK avec son "trou" au laser qui lui doit absolument d�tecter une erreur de lecture pour d�terminer que c'est bien un original car il est impossible d'�crire sur la partie abim�e de la disquette ... le fameux "trou".

En ce qui concerne la d�synchronisation volontaire, cela provient du fait que l'�criture de plusieurs 0 peut avoir pour objet de d�synchroniser la t�te de lecture... car n'oubliez pas que vous pouvez lire votre DATA REGISTER � tout moment et en particulier en boucle infinie (Cf. BPL). Avec une d�synchronisation on se fonde sur le fait que seule la protection sait EXACTEMENT ce qu'elle doit trouver derri�re la d�synchronisation en question ... pas le programme de copie !!! Cela rend souvent l'�criture fantaisiste (et pourtant les param�trages sont parfois astucieux) d�s que l'on utilise les 0 de pr�f�rence aux 1 car il y a absence de signal donc recopie hasardeuse...

Autant le dire tout de suite la technique des extrabits est la plus redoutable protection contre les logiciels de copie seul EDD IV Plus et sa carte peuvent en venir � bout... parfois au bout de grandes difficult�s. C'est l� toute la diff�rence entre "INCOPIABLE" et "NON PIRATABLE". Vous pouvez avoir une disquette "INCOPIABLE" mais il est IMPOSSIBLE d'avoir une disquette "NON PIRATABLE"!