home *** CD-ROM | disk | FTP | other *** search
/ hackzapple.com / www.hackzapple.com.tar / www.hackzapple.com / DISKII / DISKIITECH07BV2.HTM.orig < prev    next >
Text File  |  2010-10-06  |  11KB  |  185 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.  
  21.  
  22. <A NAME="DISK07"></A>
  23. <TABLE border="0" cellspacing="0" cellpadding="0" width="700">
  24. <TR>     <TD WIDTH="150"></TD> 
  25.     <TD WIDTH="100"></TD> 
  26.     <TD WIDTH="250"></TD>
  27.     <TD WIDTH="10"></TD>
  28.     <TD WIDTH="190"></TD>
  29. </TR>
  30. <TR>     <TD COLSPAN="3" valign="TOP" > <img src="../THEMAS/M3/XDISK7B.PNG" BORDER=0></TD> </TR> 
  31. <TR> <TD COLSPAN="5" CLASS="PARAG1K">
  32.     C'est sans doute ici le meilleur moyen de comprendre le fonctionnement du LSS et partant de lα de comprendre 
  33.     ce que les systΦmes de protection peuvent faire ou ne pas faire.  En la matiΦre les lΘgendes urbaines ne manquent 
  34.     pas. Passez le temps qu'il faudra mais sincΦrement si vous comprennez cette partie la lecture sur disquette 
  35.     (et corrΘlativement l'Θcriture) n'auront plus aucun secret pour vous
  36.     <BR><BR>
  37.     Voici le tableau du code prΘsentΘ selon la mΘthode de Jim Sather et qui permet de bien comprendre comment cela
  38.     fonctionne.
  39.     <BR><BR>
  40.     Avant toute chose il faut savoir que suivre le tableau seul n'est pas suffisant, il faut se reprΘsenter
  41.     simultanΘment α cette lecture sΘquence par sΘquence ce que fait le circuit MC3470 (detecte un pulse ou non) et 
  42.     le timing du sequencer qui fait passer d'une sΘquence α la suivante α chaque clock d'horloge.
  43.     <BR><BR>
  44.     <CENTER><IMG SRC="LSSR1.PNG"></CENTER>
  45.     <BR><BR>
  46.     <CENTER><IMG SRC="LSS01.PNG"></CENTER>
  47.     <BR><BR>
  48.     Exemple de lecture :
  49.     <BR><BR>
  50.     Supposons que votre lecture ait commencΘe depuis un certain temps et que votre DATA REGISTER n'ait pas son bit 7 α 1, 
  51.     vous Ωtes donc sur l'une des deux colonnes  de gauche. Si nous prenons pour exemple  que vous Ωtes en 
  52.     sΘquence numΘro 3 et ne recevez pas de pulse, vous lisez la colonne 2 en face du numΘro de sΘquence 3 et vous 
  53.     voyez 48.
  54.     <BR><BR>
  55.     Comme vous ne recevez pas de pulse α ce moment, votre 48 signifie de ne rien faire (NOP) et d'aller en sΘquence 4... 
  56.     ce que vous faites. Vous lisez en sΘquence 4 un splendide 58, si vous ne recevez pas de pulse α ce moment, 
  57.     votre 58  signifie "ne faites rien (NOP) et allez en sΘquence 5.
  58.     <BR><BR>
  59.     Maintenant vous devriez avoir compris la rΦgle du jeu, cependant voici tout de mΩme un exemple de scΘnario pour vous 
  60.     confortez : si vous ne recevez  aucun pulse pendant les passages de la sΘquence 5 jusqu'α la sΘquence 9 comprise, 
  61.     vous arrivez donc α cette  sΘquence 9 pour laquelle le code est 29 ce qui signifie que vous devez placer un 0 
  62.     dans le DATA REGISTER puis aller en sΘquence 2... et ainsi de suite.
  63.     <BR><BR>
  64.     Ce jeu serait un peu simplet car vous receverez bien α un moment ou α un autre un pulse : que se passera-t-il ?
  65.     Supposons que dans la suite des sΘquences vues prΘcΘdement vous ayez reτu un pulse en sΘquence 7. DΦs lors ce 
  66.     n'est pas le code 88 de la colonne 2 qu'il faut exΘcuter mais bien celui de la colonne 1 de cette sΘquence 7, 
  67.     vous y trouvez D8 ce qui signifie de ne rien faire et d'aller en D mais attention une fois α la sΘquence suivante D 
  68.     le pulse n'est plus et vous repartirez donc en colonne 2. Face α la sΘquence D vous voyez 08 donc allez en 0 sans 
  69.     avoir rien fait puis en 1 o∙ lα vous placez un 1 dans le DATA REGISTER...
  70.     <BR><BR>
  71.     Ces sΘquences se suivent au rythme de l'horloge du sΘquencer, et ce, tant que le bit 7 du DATA REGISTER n'est pas α 1. 
  72.     DΦs qu'il l'est vous passerez alors dans les sΘquences de QA c'est α dire les colonnes 3 et 4, au numΘro prΘcis
  73.     de la sΘquence o∙ la chose arrive... donc en rΘalitΘ aprΦs un SL1 ou un SL0, mais pour bien comprendre il faut examiner
  74.     en dΘtail le schΘma qui suit, reprΘsentant le tableau des codes et sΘquences sous la forme d'une machine α Θtats.
  75.     <BR><BR>
  76.     </TD>
  77. </TR>
  78. <TR>     <TD COLSPAN="5"  CLASS="TITRE3K"><IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> HACKING CORNER </TD></TR>
  79. <TR> <TD COLSPAN="5" CLASS="PARAG1K">
  80.     Pour bien comprendre je vous ai fait un dessin de la machine α Θtat de ce SEQUENCER pour la partie READ. 
  81.     Vous en trouverez un autre de Jim Aalto dans l'excellent livre <A HREF="DISKIITECH13.HTM">"UNDERSTANDING APPLE II"</A> de Jim SATHER mais je le trouve plus complexe... 
  82.     ce n'est qu'une question de go√t.
  83.     <BR><BR>
  84.     <CENTER><IMG SRC="LSS01B1.PNG"></CENTER>
  85.     <BR><BR>
  86.     Prenons un exemple afin de suivre la lecture d'un nibble au complet. Soit le nibble 1101.1101
  87.     <BR><BR>
  88.     <U>DΘtection bits 7 et 6</U>      <FONT COLOR="RED">11</FONT>01.1101<BR>
  89.     Les bits 7 et 6 Θtant 1 et 1 on est certain que l'entrΘe s'est faite par le sΘquence E,F de MSB α 0. 
  90.     <BR><BR>
  91.     <FONT COLOR="RED">NOTA TRES IMPORTANT : le DATA REGISTER contient la valeur 0000.0011 <U>et non</U> 1100.0000 
  92.     car les SHIFT SL1 et SL0 se font de la droite vers la gauche.</FONT>
  93.     <BR><BR>
  94.     <U>DΘtection bit 5</U>      11<FONT COLOR="RED">0</FONT>1.1101<BR>
  95.     Le bit 5 Θtant α 0, aucun pulse n'a pu Ωtre detectΘ en sΘquence F, la suite s'est donc faite par l'entrΘe en sΘquence 4, 
  96.     normalement aucun pulse n'est detectΘ avant la sΘquence 9 qui fait alors entrer un 0 dans le DATA REGISTER puis on
  97.     continue en entrant en sΘquence 2. 
  98.     <BR><BR>
  99.     <U>DΘtection bit 4</U>      110<FONT COLOR="RED">1</FONT>.1101<BR>
  100.     Un pulse sera alors detectΘ entre cette sΘquence et la 9 ce qui nous amΘnera en D puis
  101.     en 0 et 1. A ce moment un 1 est placΘ dans le DATA REGISTER qui a la valeur 0000.1101
  102.     <BR><BR>
  103.     <U>DΘtection bit 3</U>      1101.<FONT COLOR="RED">1</FONT>101<BR>
  104.  
  105.     On repasse alors dans le circuit des sΘquences 2 α 9 maximum puis D, 0, 1 qui conduit α introduire un nouveau 1 
  106.     dans le DATA REGISTER qui est alors 0001.1011 
  107.     <BR><BR>
  108.     <U>DΘtection bit 2</U>      1101.1<FONT COLOR="RED">1</FONT>01<BR>
  109.  
  110.     On repasse alors dans le circuit des sΘquences 2 α 9 maximum puis D, 0, 1 qui conduit α introduire un nouveau 1 
  111.     dans le DATA REGISTER qui est alors 0011.0111 
  112.     <BR><BR>
  113.     <U>DΘtection bit 1</U>      1101.11<FONT COLOR="RED">0</FONT>1<BR>
  114.  
  115.     Pour les sΘquences suivantes de 2 α 9, aucun pulse ne sera dΘtectΘ, un 0 sera
  116.     alors introduit dans le DATA REGISTER qui prend alors la valeur 0110.1110
  117.     <BR><BR>
  118.     <U>DΘtection bit 0</U>      1101.110<FONT COLOR="RED">1</FONT><BR>
  119.  
  120.     Pour le dernier bit α 1, le pulse sera detectΘ entre 2 et 9 maximum qui conduira α D, 0 et 1 et lα un 1 sera introduit
  121.     dans le DATA REGISTER devient alors 1101.1101 le MSB est α 1 ON PASSE AUTOMATIQUEMENT sur la sΘquence 2 de droite qui est 
  122.     en boucle infinie tant que le pulse du MSB du nibble suivant n'est pas detectΘ. 
  123.     <BR><BR>
  124.     <IMG SRC="../THEMAS/DIVERS/RMQ01.PNG"><BR>
  125.     <B><FONT COLOR="RED">Notons d'ors et dΘjα qu'il est IMPOSSIBLE de dΘcompter le nombre de 0 (ceux de synchronisation en fait) lorsque l'on 
  126.     est dans cette sΘquence N░2 de MSB1 !!! </FONT></B> Les schΘmas de protection qui dΘtectent les extra-bits procΦdent d'ailleurs d'une autre 
  127.     faτon c'est α dire attendent que les bits 7 et 6 soient dΘtectΘs. On reverra cela plus loin avec la technique des 
  128.     BMI (en lieu et place des BPL) pour les desynchronisations
  129.     <BR><BR>
  130.     <IMG SRC="../THEMAS/DIVERS/RMQ02.PNG"><BR>
  131.     DΦs que le pulse du bit 7 du nibble suivant sera dΘtectΘ on continuera donc dans cette
  132.     partie jusqu'α detecter la valeur du bit 6 qui pourra Ωtre 0 ou 1 : <B><FONT COLOR="RED">NOTEZ BIEN QUE LES BITS 7 ET 6 
  133.     NE SONT PAS ENCORE INSERES DANS LE DATA REGISTER QUI N'A PAS ETE EFFACE ET CONTIENT TOUJOURS LA VALEUR DU PRECEDANT 
  134.     NIBBLE,  l'objectif est de CONSERVER le PLUS LONGTEMPS possible le DATA REGISTER avec cette valeur prΘcΘdente pour 
  135.     que le programme 6502 ait le temps de la lire.
  136.     <BR><BR>
  137.     Le DATA REGISTER sera finalement effacΘ, que le programme ait lu ou non la valeur ! C'est AU PROGRAMMEUR de faire la 
  138.     lecture en temps utile, le LSS lui laisse un dΘlai suffisant.</FONT></B>
  139.     <BR><BR>
  140.     Si le bit 6 de ce second nibble est α 1 on ira en sΘquence A,B, et Θventuellement C de MSB α 0 pour 
  141.     remplir le DATA REGISTER avec la sΘquence de bits "10"
  142.     <BR><BR>
  143.     Si le bit 6 est α 1 on ira en sΘquence E, F pour remplir le DATA REGISTER avec la sΘquence  bits "11"
  144.     <BR><BR>
  145.     <IMG SRC="../THEMAS/DIVERS/RMQ03.PNG"><BR>
  146.     On notera que la dΘtection du bit 5 α 1 (PAS A ZERO) peut se faire thΘoriquement :<BR>
  147.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">en sΘquence A, B ou C (cas du bit 6 α 0),<BR>
  148.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF">en sΘquence F (cas du bit 6 α 1)
  149.     <BR> <BR>
  150.     Dans le cas d'un pulse reτu en sΘquence E il est considΘrΘ comme un parasite car reτu bien trop proche du prΘcΘdent,
  151.     et on voit bien que sur la machine α Θtat ci-dessus (tout comme sur le code PROM qui lui correspond) il est ignorΘ.
  152.     <BR> <BR>
  153.     Vous notez ainsi immΘdiatement qu'un pulse valide dΘtectΘ trΦs t⌠t est considΘrΘ comme celui du prochain bit et non 
  154.     un rΘsidu du prΘcΘdent. Vous allez dire "Ah et alors ?" ... <B><FONT COLOR="RED">Eh bien cela vous explique, 
  155.     autrement mieux qu'une dΘclaration pompeuse non justifiΘe, pourquoi la lecture avec un drive rapide ne pose aucun 
  156.     problΦme et que, par corollaire, il est prΘfΘrable d'avoir un drive lent pour l'Θcriture plut⌠t que pour la lecture. 
  157.     Dans le cas des copies "de sΘcuritΘ" de disquettes protΘgΘes c'est mΩme  carrΘment mieux !!! </FONT></B>
  158.     </TD>
  159. </TR>
  160. </TABLE>
  161.  
  162.  
  163.  
  164.  
  165. <TABLE border="0" cellspacing="0" cellpadding="0" width="700">
  166. <TR>     <TD WIDTH="150"></TD> 
  167.     <TD WIDTH="100"></TD> 
  168.     <TD WIDTH="250"></TD>
  169.     <TD WIDTH="10"></TD>
  170.     <TD WIDTH="190"></TD>
  171. </TR>
  172. <TR> <TD COLSPAN="5" height="10"> </TD>  </tr>
  173. <TR><TD COLSPAN="5"  ><HR color="BLUE"></td>
  174. </TR>
  175. <TR> 
  176.     <TD COLSPAN="5">  
  177.     <CENTER>
  178.     <A HREF="javascript:history.back()"> <IMG SRC="../THEMAS/DIVERS/JSBACK.PNG"></A> 
  179.     <A HREF="DISKIITECH.HTM" > <IMG SRC="../THEMAS/DIVERS/HOMESITE.PNG"></A>
  180.     </CENTER></TD>
  181. </TR>
  182. </TABLE></CENTER>
  183. </BODY>
  184. </HTML>
  185.