home *** CD-ROM | disk | FTP | other *** search
/ hackzapple.com / www.hackzapple.com.tar / www.hackzapple.com / DISKII / DISKIITECH03.HTM.orig < prev    next >
Text File  |  2010-10-06  |  15KB  |  333 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  2. <HTML>
  3. <HEAD>
  4. <TITLE>HACK Z APPLE, Collection Apple II</TITLE>
  5.   <link rel="shortcut icon" type="image/x-icon" href="http://www.hackzapple.com/favicon.ico">
  6.   <meta http-equiv="imagetoolbar" content="no">
  7.   <meta name="author" content="JPL">
  8.  <meta name="KEYWORDS"    content="HACK Z APPLE, JPL, Cracking, Hacking, DISK II, DRIVES, DISQUETTES, Collection APPLE II, APPLE, Apple II, APPLE II Plus, 2+, Europlus, 2e, //e, enhanced, Platinium, Stealth,  Cortland, GS, IIGS, WOZ, IIGS WOZ, ROM 0, ROM 1, ROM 4, IIc, IIc Plus,Apple III, LISA, MAC XL, DARK VADOR, ITT 2020, APPLE BF,APPLE REV0, REVISION 0, RFI, NON RFI">
  9.   <meta name="TITLE"     content="Apple II standard">
  10.   <meta name="OWNER"     content="HACKZAPPLE.COM">
  11.   <meta name="SUBJECT"     content="Collection Apple II">
  12.   <meta name="REVISIT-AFTER"     content="10 DAYS">
  13.   <meta name="LANGUAGE" content="FR">
  14.   <meta name="ROBOTS"     content="All">   
  15. <link href="../BASIC.CSS" rel="stylesheet" type="text/css"> 
  16. </HEAD>
  17.  
  18. <BODY>
  19. <CENTER>
  20. <A NAME="DISK03"></A>
  21. <TABLE border="0" cellspacing="0" cellpadding="0" width="700">
  22. <TR> 
  23.     <TD WIDTH="200"> </TD> 
  24.     <TD WIDTH="100"> </TD> 
  25.     <TD WIDTH="150"></TD> 
  26.     <TD WIDTH="250"></TD>
  27. </TR>
  28. <TR>     <TD COLSPAN="3" valign="TOP" > <img src="../THEMAS/M3/XDISK3.PNG" BORDER=0></TD>  
  29.     <TD> 
  30.     <CENTER>
  31.     <A HREF="DISKIITECH02A.HTM" > <img  src="../THEMAS/DIVERS/PRIOR1.PNG" BORDER=0></A>
  32.     <A HREF="DISKIITECH.HTM" > <img  src="../THEMAS/DIVERS/HOME1.PNG" BORDER=0></A>  
  33.     <A HREF="DISKIITECH04.HTM" ><img  src="../THEMAS/DIVERS/SUITE1.PNG" BORDER=0></A>
  34.     </CENTER>
  35.     </TD>
  36. </TR>
  37. <TR> <TD COLSPAN ="4" HEIGHT="10"></TD></TR>
  38. <TR> <TD COLSPAN ="4" CLASS="PARAG1">
  39.     <B>Le formattage des disquettes d'APPLE est trΦs particulier en ce sens qu'il ne fait pas appel α un systΦme 
  40.     externe pour signaler au programme de lecture qu'il va arriver sur une zone de donnΘes. C'est un formattage 
  41.     EXCLUSIVEMENT LOGICIEL.</B>
  42.     <BR><BR>
  43.     </TD>
  44. </TR>
  45. <TR> <TD COLSPAN ="4" CLASS="TITRE3">DΘcoupage de la disquette en pistes</TD></TR>
  46. <TR> <TD COLSPAN ="4" HEIGHT="1" BGCOLOR="BLUE"></TD></TR>
  47. <TR> <TD COLSPAN ="4" CLASS="PARAG1">
  48.     <BR>  
  49.     Les disquettes 5'25 sont formattΘes en <B>35 pistes (soit $23 pistes numΘrotΘes de $00 α $22)</B>, 
  50.     la piste 0 est la plus extΘrieure et la piste 35 la plus intΘrieure. Le catalogue de la disquette est placΘ sur 
  51.     la piste 17 ($11). 
  52.     Il n'y a pas de variation de la vitesse du moteur pour chaque piste, la vitesse reste la mΩme pour chacune.
  53.     <BR><BR>
  54.     </TD>
  55. </TR>
  56. <TR> <TD COLSPAN ="4" CLASS="TITRE3K"> <IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> Hacking corner </TD></TR>
  57. <TR> <TD COLSPAN ="4" CLASS="PARAG1K">
  58.     <BR>  
  59.     1. certaines protections utilisent ce que l'on appelle une extra-piste α savoir la piste $23 qui 
  60.     n'est pas accessible par le DOS normal.  Ce type de protection fait partie des premiers trucs et astuces mais
  61.     prΘsente l'inconvΘnient de ne pas fonctionner sur tous les lecteurs de disquettes.
  62.     <BR><BR>
  63.     2. Nous verrons dans la section <A HREF="DISKIITECH09.HTM">"dΘplacement de la tΩte de lecture"</A>
  64.      qu'il est possible d'Θcrire sur ce qui est 
  65.     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
  66.     est telle qu'elle impose une distance minimale entre deux pistes... or le moteur utilisΘ en pas α pas permet des
  67.     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 
  68.     timing qu'il convient de mettre en oeuvre. MAIS il faut TOUJOURS un espace d'une piste entre deux zones d'Θcriture, 
  69.     demi-piste ou quart de piste...
  70.     <BR><BR>
  71.     3. Il existe un bricolage simple α faire pour voir les pistes qui sont utilisΘes par un programme... utile quand on 
  72.     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
  73.     un programme comme locksmith bref on apprend comment <A HREF="DISKIITECH09C.HTM">repΘrer les pistes</A>.
  74.     <BR><BR>
  75.     4. Une technique de protection consiste α ce qui s'appelle la synchronisation des pistes qui n'a STRICTEMENT RIEN
  76.     A VOIR AVEC LA SYNCHRONISATION DE LECTURE telle qu'expliquΘe en rubrique 
  77.     <A HREF="DISKIITECH04.HTM">"synchronisation"</A> mais QUI A TOUT A VOIR AVEC LA RUBRIQUE 
  78.     <A HREF="DISKIITECH03C.HTM">"synchronisation des pistes"</A> 
  79.     <BR><BR> 
  80.     </TD>
  81. </TR>
  82.  
  83.  
  84. <TR> <TD COLSPAN ="4" CLASS="TITRE3">DΘcoupage des pistes en secteurs</TD></TR>
  85. <TR> <TD COLSPAN ="4" HEIGHT="1" BGCOLOR="BLUE"></TD></TR>
  86. <TR> <TD COLSPAN ="4" CLASS="PARAG1">
  87.     <BR>  
  88.     Les pistes sont dΘcoupΘes artificiellement en secteurs. Il y a  :<BR>
  89.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF"><B>13 secteurs en DOS 3.2</B> <BR> 
  90.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF"><B>16 secteurs en DOS 3.3, PASCAL et la plupart des autres OS </B>.
  91.     <BR><BR> 
  92.     La taille d'un secteur correspond 
  93.     α un nombre de nibbles variable selon le codage mais dont le rΘsultat correspond normalement α une 
  94.     page de 256 octets en mΘmoire.
  95.     <BR><BR>
  96.     Chaque secteur est prΘcΘdΘ et suivi par des nibbles dits de synchronisation.
  97.     <BR><BR>
  98.     <IMG SRC="PISTE.PNG">
  99.     <BR><BR>
  100.     </TD>
  101. </TR>
  102. <TR> <TD COLSPAN ="4" CLASS="TITRE3K"> <IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> Hacking corner </TD></TR>
  103. <TR> <TD COLSPAN ="4" CLASS="PARAG1K">
  104.     <BR>  
  105.     Evidement vous avez compris que lα encore des systΦmes de protection utilisent un nombre variable
  106.     de secteurs par piste ou modifient la taille des secteurs... les combinaisons sont alors infinies.
  107.     Des exemples vous sont donnΘs dans la rubrique <A HREF="DISKIITECH03A.HTM">"formats exotiques"</A>
  108.     <BR><BR>    
  109.     </TD>
  110. </TR>
  111.  
  112. <TR> <TD COLSPAN ="4" CLASS="TITRE3">DΘcoupage des secteurs en deux champs</TD></TR>
  113. <TR> <TD COLSPAN ="4" HEIGHT="1" BGCOLOR="BLUE"></TD></TR>
  114. <TR> <TD COLSPAN ="4" CLASS="PARAG1">
  115.     <BR>  
  116.     Lors de l'initialisation de la disquette la routine de formattage Θcrit donc 16 secteurs sur chaque piste.
  117.     Chaque secteur se dΘcompose en 2 parties bien distinctes sΘparΘes par des nibbles de synchronisation, ce sont :<BR>
  118.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">Le champ adresse, qui est Θcrit lors de l'initialisation, il n'est plus modifiΘ 
  119.     par la suite<BR>
  120.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">Le champ des donnΘes, qui est Θcrit certes α l'initialisation mais qui 
  121.     lui peut Ωtre bien evidemment rΘΘcrit pour enregistrer les modifications de donnΘes. 
  122.     <BR><BR>
  123.     Le dΘbut de ces champs est identifiΘ par une sΘquence de <A HREF="DISKIITECH02A.HTM">nibbles</A> bien prΘcis (l'entΩte) qui sont : <BR>
  124.     Pour le champ adresse  : D5 AA 96<BR>
  125.     Pour le champ donnΘes  : D5 AA AD  
  126.     <BR><BR>
  127.     Pour savoir comment se fait la dΘtection de ces champs, il faut aller voir la section 
  128.     <A HREF="DISKIITECH04.HTM">"synchronisation"</A>
  129.     <BR><BR>
  130.     <B>ORDRE PHYSIQUE ET ORDRE LOGIQUE :</B>
  131.     <BR><BR>
  132.     Il faut savoir que les secteurs ont un ordre physique 0,1,2,3,4 etc... qui ne correspond pas α l'ordre logique.
  133.     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 
  134.     enregistrΘes, la disquette continue α tourner et Θvidement le secteur physique qui suit celui en cours de dΘcodage est
  135.     dΘpassΘ depuis longtemps, donc pour optimiser le temps de lecture l'ordre logique est celui qui permet de charger les
  136.     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 
  137.     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
  138.     dans la rubrique astucieusement nommΘe <A HREF="DISKIITECH03B.HTM">"Interleaving..."</A>
  139.     <BR><BR>
  140.     </TD>
  141. </TR>
  142. <TR> <TD COLSPAN ="4" CLASS="TITRE3K"> <IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> Hacking corner </TD></TR>
  143. <TR> <TD COLSPAN ="4" CLASS="PARAG1K">
  144.     D'astucieux systΦmes de protection n'utilisent pas systΘmatiquement des champs sΘparΘs adresse/donnΘes. Ils se
  145.     contentent de markers d'entΩte et Θventuellement d'un repΘrage simpliste de piste/secteur
  146.     <BR><BR>    
  147.     </TD>
  148. </TR>
  149.  
  150. <TR> <TD COLSPAN ="4" CLASS="TITRE3">Le champ adresse</TD></TR>
  151. <TR> <TD COLSPAN ="4" HEIGHT="1" BGCOLOR="BLUE"></TD></TR>
  152. <TR> <TD COLSPAN ="4"  CLASS="PARAG1"> Il est important de bien noter que le champ des donnΘes est ECRIT UNE SEULE FOIS
  153. 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
  154. n'est pas nΘcessairement le cas du champ des donnΘes qui est rΘΘcrit α chaque mise α jour.
  155. </TD></TR>
  156. <TR> <TD  CLASS="PARAG1">
  157.     <BR>  
  158.     Le champ adresse est composΘ :<BR>
  159.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un entΩte<BR>
  160.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un numΘro de volume <BR>
  161.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un numΘro de piste<BR>
  162.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un numΘro de secteur<BR>
  163.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un checksum<BR>
  164.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'une sequence finale<BR>
  165.     <BR><BR>
  166.     </TD>
  167.     <TD  CLASS="PARAG1">
  168.     DOS 3.3<BR>
  169.     <BR>  
  170.     D5 AA 96<BR>
  171.     XX YY<BR>
  172.     XX YY<BR>
  173.     XX YY<BR>
  174.     XX YY<BR>
  175.     DE AA EB<BR>
  176.     </TD>
  177.     <TD  CLASS="PARAG1">
  178.     <BR>
  179.     <BR>  
  180.     <BR>
  181.     2 nibbles codΘs 4.4<BR>
  182.     2 nibbles codΘs 4.4<BR>
  183.     2 nibbles codΘs 4.4<BR>
  184.     2 nibbles codΘs 4.4<BR>
  185.     <BR>
  186.     </TD>
  187.     <TD COLSPAN ="2" CLASS="PARAG1">
  188.     DOS 3.2<BR>
  189.     <BR>  
  190.     D5 AA B5<BR>
  191.     XX YY<BR>
  192.     XX YY<BR>
  193.     XX YY<BR>
  194.     XX YY<BR>
  195.     DE AA EB<BR>
  196.     </TD>
  197. </TR>
  198.  
  199. <TR> <TD COLSPAN ="4" CLASS="TITRE3">Le champ des donnΘes</TD></TR>
  200. <TR> <TD COLSPAN ="4" HEIGHT="1" BGCOLOR="BLUE"></TD></TR>
  201. <TR> <TD COLSPAN ="4"  CLASS="PARAG1"> Il est important de bien noter que le champ des donnΘes est SYSTEMATIQUEMENT prΘcΘdΘ 
  202. par 5 $FF de synchronisation lors de CHAQUE rΘΘcriture ce qui cause des chevauchements de champs magnΘtiques de faτon
  203. alΘatoire et que nous verrons plus loin.
  204. </TD></TR>
  205. <TR> <TD CLASS="PARAG1">
  206.     <BR>  
  207.     Le champ des donnΘes est composΘ :<BR>
  208.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un entΩte<BR>
  209.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">des donnΘes elles mΩmes<BR>
  210.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'un checksum<BR>
  211.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">d'une sequence finale<BR>
  212.     <BR><BR>
  213.     </TD>
  214.     <TD  CLASS="PARAG1">
  215.     DOS 3.3<BR>
  216.     <BR>  
  217.     D5 AA AD<BR>
  218.     342 nibbles codΘs 6.2<BR>
  219.     1 nibble codΘ 6.2<BR>
  220.     DE AA EB<BR>
  221.     </TD>
  222.     <TD  CLASS="PARAG1">
  223.     <BR>
  224.     <BR>  
  225.     </TD>
  226.     <TD COLSPAN ="2" CLASS="PARAG1">
  227.     DOS 3.2<BR>
  228.     <BR>  
  229.     D5 AA AD<BR>
  230.     410 nibbles codΘs 5.3<BR>
  231.     1 nibble codΘ 5.3 <BR>
  232.     DE AA EB<BR>
  233.     </TD>
  234. </TR>
  235. <TR> <TD COLSPAN ="4" CLASS="PARAG1">
  236.     <IMG SRC="SECTEUR.PNG">
  237.     <BR><BR>
  238.     Il n'est pas inutile de prΘciser ici que les valeurs $FF de synchronisation sont Θcrites en 40 cycles 
  239.     et de ce fait vous avez sur la disquette deux 0 supplΘmentaires derriΦre les 1 du $FF. 
  240.     On a donc un $FF Θcrit en 10 bits soit 1111.1111.00 (les points ne sont lα que pour la lisibilitΘ 
  241.     Θvidement). Les raisons sont expliquΘes dans la section 
  242.     <A HREF="DISKIITECH04.HTM">"synchronisation"</A>
  243.     <BR><BR>
  244.     Nous verrons dans l'examen attentif (enfin j'espΦre) de la 
  245.     <A HREF="DISKIITECH06A.HTM">routine d'Θcriture du champ adresse du DOS 3.3</A> que le $EB ne
  246.     peut JAMAIS Ωtre Θcrit correctement... et que de tout faτon il n'est pas testΘ en relecture !
  247.     </TD>
  248. </TR>
  249.  
  250. <TR> <TD COLSPAN ="4" CLASS="TITRE3K"> <IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> Hacking corner</TD></TR>
  251. <TR> <TD COLSPAN ="4" CLASS="PARAG1K">
  252.     <BR>
  253.     Bien s√r si vous changez les markers vous rendez non copiable par le programme standard COPYA ou 
  254.     les programmes non spΘcifiques votre disquette. Vous avez UNE CONTRAINTE : 
  255.     <BR><BR>
  256.     <B><FONT COLOR="RED">le secteur 0 de la piste 0
  257.     DOIT ETRE ECRIT AVEC LES MARKERS STANDARD... sinon la disquette ne peut pas Ωtre chargΘe.</FONT></B>
  258.     <BR><BR>
  259.     C'est lα le talon d'achille de TOUTES LES PROTECTIONS car cela permet de mettre en oeuvre la technique
  260.     du tracΘ de boot qui est IMPARABLE... mais cela ne signifie pas pour autant que la suite est facile !
  261.     Le dΘtail de cette technique est expliquΘe plus loin dans la section 
  262.     <A HREF="DISKIITECH08.HTM">"Bootstrap"</A>
  263.     <BR><BR>
  264.     </TD>
  265. </TR>
  266.  
  267. <TR> <TD COLSPAN ="4" CLASS="TITRE3">INITIALISATION ET REECRITURE</TD></TR>
  268. <TR> <TD COLSPAN ="4" HEIGHT="1" BGCOLOR="BLUE"></TD></TR>
  269. <TR> <TD COLSPAN ="4" CLASS="PARAG1">
  270.     <BR>  
  271.     Pour initialiser une disquette vous chargez un DOS et tapez la commande :
  272.     <BR><BR>
  273.     <B><FONT COLOR="#40FF40">INIT HELLO</FONT></B> suivi de RETURN
  274.     <BR><BR>
  275.     Notas importants: 
  276.     <BR>  
  277.     1. HELLO est le nom du programme BASIC qui sera lancΘ quand votre disquette bootera sur l'APPLE II. Vous
  278.     pouvez choisir tout autre nom cela n'a pas d'importance. Ce programme BASIC est celui prΘsent en mΘmoire lors de
  279.     la commande INIT Θvidement, s'il n'y en a pas eh bien vous aurez quand mΩme un fichier basic HELLO ... mais vide.
  280.     <BR><BR>
  281.     2. Vous pouvez remplacer le programme HELLO en l'effaτant et en renommant par HELLO celui que vous voudrez voir lancΘ.
  282.     (comme dit ci-dessus, si vous avez fait l'INIT avec TARZAN alors ce sera TARZAN qu'il faudra utiliser pour le 
  283.     renommage.
  284.     <BR><BR>
  285.     3. Sauf avec des utilitaires spΘcifiques (COPY II PLUS par exemple) vous ne pouvez pas changer 
  286.     le nom de fichier choisi avec la commande INIT.
  287.     </TD>
  288. </TR>
  289. <TR> <TD COLSPAN ="4" CLASS="TITRE3K"> <IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> Hacking corner</TD></TR>
  290. <TR> <TD COLSPAN ="4" CLASS="PARAG1K">
  291.     <BR>
  292.     Lors de l'initialisation les pistes sont formattΘes une fois pour toute en ce qui concerne les champs adresse. 
  293.     Pour ce qui est des champs datas ils sont Θcrits certes α l'initialisation mais ensuite rΘΘcrits chaque fois 
  294.     qu'il y a besoin... ce qui explique la prΘsence de zones magnΘtiques instables entre les champs adresse et data.  
  295.     <BR><BR>
  296.     <IMG SRC="INSTABLE.PNG">
  297.     <BR><BR>
  298.     Sur le dessin il est prΘcisΘ que l'on rΘ-Θcrit les donnΘes une premiΦre fois avec un drive lent puis 
  299.     une seconde fois avec un drive rapide mais gardez toutefois α l'esprit que c'est ce qui se passe sur un 
  300.     mΩme lecteur.. il y a toujours de zones de recouvrement des champs magnΘtiques qui sont des zones instables.
  301.     <BR><BR>
  302.     Ces zones d'instabilitΘ dΘsynchronisent la lecture c'est pourquoi on rΘΘcrit  toujours le champ des donnΘes
  303.     en commenτant par rΘΘcrire des $FF de synchronisation. Le problΦme ne se pose JAMAIS pour les champs adresse
  304.     car ils sont Θcrits une fois pour toute... jusqu'α ce la disquette dΘraille.    
  305. </TD>
  306. </TR>
  307.  
  308.  
  309.  
  310.  
  311. <TR> <TD COLSPAN="5" height="10"></TD>  </tr>
  312. <TR>    <TD COLSPAN="5" CLASS="PARAG1"> <CENTER> 
  313.     <A HREF="DISKIITECH02A.HTM" > <img  src="../THEMAS/DIVERS/PRIOR1.PNG" BORDER=0></A>
  314.     <A HREF="DISKIITECH04.HTM" ><img  src="../THEMAS/DIVERS/SUITE1.PNG" BORDER=0></A>
  315.     </CENTER>
  316.     </TD>
  317. </TR>
  318.  
  319. <TR> <TD COLSPAN="4" height="10"></TD> </tr>
  320. <TR><TD COLSPAN="4"  ><HR color="BLUE"></td>
  321. </TR>
  322. <TR> 
  323.     <TD COLSPAN="4">  
  324.     <CENTER>
  325.     <A HREF="javascript:history.back()"> <IMG SRC="../THEMAS/DIVERS/JSBACK.PNG"></A> 
  326.     <A HREF="DISKIITECH.HTM" > <IMG SRC="../THEMAS/DIVERS/HOMESITE.PNG"></A>
  327.     </CENTER></TD>
  328. </TR>
  329. </TABLE>
  330. </CENTER>
  331. </BODY>
  332. </HTML>
  333.