home *** CD-ROM | disk | FTP | other *** search
/ hackzapple.com / www.hackzapple.com.tar / www.hackzapple.com / DISKII / DISKIITECH07C.HTM.orig < prev    next >
Text File  |  2010-10-06  |  6KB  |  120 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/XDISK7C.PNG" BORDER=0></TD> </TR> 
  31. <TR> <TD COLSPAN="5" CLASS="PARAG1K">
  32.     Le test de protection de la disquette contre l'Θcriture est une opΘration OBLIGATOIRE avant d'Θcrire mais ce n'est pas 
  33.     pour vΘrifier simplement qu'il y a ou non un notch, cela permet Θgalement deux choses importantes :<BR>
  34.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF"> d'une part cela fait un reset de QA<BR>
  35.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF"> d'autre part cela positionne le LSS α la sΘquence 0 ce qui est la seule mΘthode pour un programme 6502 de connaεtre la
  36.     position du LSS et de pouvoir gΘrer ensuite son timing en 32 cycles (dont l'explication suit)
  37.     <BR><BR>
  38.     Voici le tableau du code prΘsentΘ selon la mΘthode de Jim Sather et qui permet de bien comprendre comment cela
  39.     fonctionne.
  40.     <BR><BR>
  41.  
  42.     <CENTER><IMG SRC="LSSW1.PNG"></CENTER>
  43.     <BR><BR>
  44.     Comme nous l'avons dΘjα expliquΘ le tableau PULSE et NO PULSE sont identiques car que le LSS reτoive ou non des PULSE,
  45.     il doit les ignorer puisqu'il s'agit d'Θcrire sur la disquette et que l'on va rΘorienter les champs magnΘtiques. 
  46.     Concentrons nous donc sur le systΦme de l'un d'eux seulement car la navigation entre les colonnes selon la rΘception 
  47.     ou non des PULSES n'a ici absolument aucun intΘrΩt.
  48.     <BR><BR>
  49.     Ce qui a un interΩt particulier c'est la faτon dont se passe le chargement du DATA REGISTER par rapport α l'Θtat du LSS
  50.     et donc comment ce dernier travaille avec les opΘrations SHIFT et LOAD
  51.     <BR><BR>
  52.     L'opΘration SHIFT consiste α Θcrire bit par bit, le nibble contenu dans DATA REGISTER, sur la disquette, on remarque
  53.     donc que le LSS procΘde simplement α des dΘcalages avec l'instruction SL0 faisant ainsi passer successivement tous 
  54.     les bits b6 α b0 par position de b7 qui correspond α QA actif si le bit est α 1 et QA inactif si le bit est α 0. 
  55.     Le DATA REGISTER prend donc un certain nombre de valeur jusqu'α contenir $00.
  56.     <BR><BR>
  57.     Vous n'Ωtes pas sans remarquer que d'une opΘration SL0 α l'autre il y a TOUJOURS et PRECISEMENT 8 sΘquences. Ce n'est pas
  58.     un hasard : nous avons vu que le LSS fonctionne α 2mhz, 8 sΘquences correspondent donc α 4 cycles CPU soit 4╡s...exactement
  59.     le dΘlai de la fenΩtre d'Θcriture d'un bit ce qui pour 8 bits fera donc 4*8=32 cycles !
  60.     <BR><BR> 
  61.     Maintenant vous comprenez pourquoi le programme 6502 doit maintenir 32 cycles entre deux opΘrations de chargement : c'est 
  62.     pour laisser le temps au LSS d'Θcrire le nibble correctement. Mais vous comprennez Θgalement que si vous ne
  63.     rechargez pas le DATA REGISTER dΦs les 32 cycles ΘcoulΘs, celui-ci contiendra des 0 qui seront alors "shiftΘs" 
  64.     toutes les 8 sΘquences donc tous les 4╡s CAR ON RESTE DANS LA BOUCLE DE L'OPERATION SHIFT... c'est ainsi que sont 
  65.     Θcrits les bits de synchronisation : en ayant une routine α 36 ou 40 cycles selon que l'on veut 1 ou 2 extra-bits 
  66.     de synchronisation.
  67.     <BR><BR>
  68.     Pourquoi donc avoir Θcrit ce code en 16 sΘquences ? Certes pas pour vous ennuyer mais le changement de signal se fait 
  69.     lors du passage de la sΘquence 7 α la sΘquence 8 ce qui permet donc d'Θcrire des 1 chaque fois que l'on passe de l'une
  70.     α l'autre. Par ailleurs en liaison avec la suite des sΘquences pour le chargement cela permet d'avoir un chargement du 
  71.     DATA REGISTER aussi bien derriΦre un 1 que derriΦre un 0, ce qui est assez heureux !
  72.     <BR><BR>
  73.     Voici le code d'Θcriture reprΘsentΘ α nouveau sous la forme d'une machine α Θtat, ce qui permet de comprendre le
  74.     dΘroulement des sΘquences selon que le bit 7 QA soit α 1 ou α 0. 
  75.     <BR><BR>
  76.     <CENTER><IMG SRC="LSS02A.PNG"></CENTER>
  77.     <BR><BR>
  78.     On notera :<BR>
  79.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF"> que l'opΘration LOAD boucle en infini si le bit 7 n'est pas α 1 et n'Θcrit RIEN
  80.     alors que normalement elle devrait bien passer par les sΘquences 7/8 pour Θcrire le MSB α 1!. <BR>
  81.     <IMG SRC="../THEMAS/DIVERS/BULLET.GIF"> que l'on peut parfaitement Θcrire les nibbles en chargeant le DATA REGISTER 
  82.     lors des multiples d'Θcriture de 4 cycles CPU (8,16, 20, 24, 28, 32). 
  83.     Il est clair que le DOS charge tous les 32 cycles... mais si vous deviez Θcrire un schΘma de protection bien
  84.     particuliΦre, vous y trouveriez un grand avantage car cela permet d'insΘrer des 0 de faτon extrΩmement fiable.
  85.     <BR><BR>
  86.     Exemple d'Θcriture :
  87.     <BR><BR>
  88.         <BR> 
  89.     </TD>
  90. </TR>
  91. <TR>     <TD COLSPAN="5"  CLASS="TITRE3K"><IMG SRC="../THEMAS/DIVERS/CRACK.BMP"> HACKING CORNER </TD></TR>
  92. <TR> <TD COLSPAN="5" CLASS="PARAG1K">
  93.     </TD>
  94. </TR>
  95. </TABLE>
  96.  
  97.  
  98.  
  99.  
  100. <TABLE border="0" cellspacing="0" cellpadding="0" width="700">
  101. <TR>     <TD WIDTH="150"></TD> 
  102.     <TD WIDTH="100"></TD> 
  103.     <TD WIDTH="250"></TD>
  104.     <TD WIDTH="10"></TD>
  105.     <TD WIDTH="190"></TD>
  106. </TR>
  107. <TR> <TD COLSPAN="5" height="10"> </TD>  </tr>
  108. <TR><TD COLSPAN="5"  ><HR color="BLUE"></td>
  109. </TR>
  110. <TR> 
  111.     <TD COLSPAN="5">  
  112.     <CENTER>
  113.     <A HREF="javascript:history.back()"> <IMG SRC="../THEMAS/DIVERS/JSBACK.PNG"></A> 
  114.     <A HREF="DISKIITECH.HTM" > <IMG SRC="../THEMAS/DIVERS/HOMESITE.PNG"></A>
  115.     </CENTER></TD>
  116. </TR>
  117. </TABLE></CENTER>
  118. </BODY>
  119. </HTML>
  120.