<td width="100%"><a href="viewtopic.php?p=957#957"><img src="templates/subSilver/images/icon_minipost.gif" width="12" height="9" alt="Message" title="Message" border="0" /></a><span class="postdetails">PostΘ le: Jeu 27 Nov 2008, 21:27<span class="gen"> </span> Sujet du message: GS/OS: AppleDisk5.25</span></td>
<td valign="top" nowrap="nowrap"><a href="posting.php?mode=quote&p=957"><img src="templates/subSilver/images/lang_french/icon_quote.gif" alt="RΘpondre en citant" title="RΘpondre en citant" border="0" /></a> </td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td colspan="2"><span class="postbody">Comme vous le savez, j'ai annoncΘ sur csa2 et csa2.programmer que je travaillais sur le driver AppleDisk5.25 de GS/OS afin de lui ajouter quelques fonctions afin de pouvoir gΘrer d'autres systΦmes de fichiers (DOS 3.2, CP/M et d'autres en rΘserve)
<br />
<br />
J'ai ainsi dΘjα ajoutΘ :
<br />
- les routines de gestion des blocs CP/M (1024 octets ou 4 secteurs DOS 3.3 ou 2 blocs ProDOS) avec l'interleaving qui va bien
<br />
- les routines de lecture, Θcriture, formatage du DOS 3.2 13 secteurs
<br />
<br />
Avec le premier ajout, j'ai pu vΘrifier que cela fonctionnait grΓce au dΘveloppement d'un embryon de FST CP/M.
<br />
<br />
Avec le second ajout, je suis plus embΩtΘ en raison du comportement de GS/OS dont la gestion de l'appel Volume est le suivant : j'appelle la fonction Volume detous les FSTs prΘsents dans le systΦme, lesquels demandent α DEV_DISPATCHER de lire tel ou tel bloc pour vΘrifier le systΦme de fichier et crΘer la structure VCR qui va bien. GS/OS boucle tant qu'un FST ne lui a pas rΘpondu : ce truc est α moi.
<br />
<br />
Cependant, lorsque le driver (ici, AppleDisk5.25) rencontre une erreur de lecture du champ d'adresse, il retourne l'erreur $27 (I/O error) et GS/OS interprΦte cela comme une erreur de lecture du support physique et il considΦre donc qu'il n'a pas α appeler les autres FSTs.
<br />
<br />
Quand on considΦre qu'on n'a que des disquettes 16 secteurs, cela fonctionne. Mais quand on ajoute le 13 secteurs... boum ! En effet, GS/OS dΘmarre par le FST n░1 (ProDOS) lequel appelle le driver qui lui retourne l'I/O error puisqu'il a ΘtΘ incapable de lire la disquette.
<br />
<br />
Ce que j'ai cherchΘ α faire est de patcher en temps rΘel le driver dans sa gestion du champ d'adresse :
<br />
- si je rencontre D5AA96, TVB
<br />
- si je rencontre D5AAB5, patche le driver pour modifier la routine de lecture du champ de donnΘes.
<br />
Cela prend malheureusement trop de temps et n'est pas fiable.
<br />
<br />
Je pars sur une autre piste : j'ai doublΘ la routine de lecture du champ d'adresse : READ_ADDRESS62 (la standard) et READ_ADDRESS53 et je considΦre les choses suivantes :
<br />
<br />
- si je suis dans READ_ADDRESS62 et que je rencontre D5AAB5 alors retourne une erreur que GS/OS devra interprΘter comme : passe α un autre FST,
<br />
- si je suis dans READ_ADDRESS53 et que je rencontre D5AA96 alors retourne une erreur que GS/OS devra interprΘter comme : passe α un autre FST,
<br />
- en cas d'erreur, je ne retourne plus l'I/O error.
<br />
<br />
C'est chaud ! Pour le moment, cela ne fait rien, ce n'est pas le bon code d'erreur. D'autant plus, que je ne retourne pas le code erreur α GS/OS mais α un FST lequel doit interprΘter le code erreur correctement. De plus, en cas d'erreur de lecture I/O rΘelle, je ne la gΦre plus.
<br />
<br />
Une potentielle solution de contournement me gΘnΦre deux problΦmes. Soit je trouve le bon code erreur, soit je dΘsassemble tous les FSTs qui font appel α du 5.25 (ProDOS, DOS 3.2, DOS 3.3, Pascal, CP/M) et je gΦre l'erreur.
<br />
<br />
Bon, c'est ennuyeux...
<br />
<br />
el toto</span><span class="gensmall"></span></td>
</tr>
</table></td>
</tr>
<tr>
<td class="row1" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">Revenir en haut de page</a></span></td>
<td valign="middle" nowrap="nowrap"><a href="profile.php?mode=viewprofile&u=4"><img src="templates/subSilver/images/lang_french/icon_profile.gif" alt="Voir le profil de l'utilisateur" title="Voir le profil de l'utilisateur" border="0" /></a> <a href="privmsg.php?mode=post&u=4"><img src="templates/subSilver/images/lang_french/icon_pm.gif" alt="Envoyer un message privΘ" title="Envoyer un message privΘ" border="0" /></a> <a href="http://www.oss117.org/" target="_userwww"><img src="templates/subSilver/images/lang_french/icon_www.gif" alt="Visiter le site web de l'utilisateur" title="Visiter le site web de l'utilisateur" border="0" /></a> <script language="JavaScript" type="text/javascript"><!--
<td valign="middle" nowrap="nowrap"><a href="profile.php?mode=viewprofile&u=4"><img src="templates/subSilver/images/lang_french/icon_profile.gif" alt="Voir le profil de l'utilisateur" title="Voir le profil de l'utilisateur" border="0" /></a> <a href="privmsg.php?mode=post&u=4"><img src="templates/subSilver/images/lang_french/icon_pm.gif" alt="Envoyer un message privΘ" title="Envoyer un message privΘ" border="0" /></a> <a href="http://www.oss117.org/" target="_userwww"><img src="templates/subSilver/images/lang_french/icon_www.gif" alt="Visiter le site web de l'utilisateur" title="Visiter le site web de l'utilisateur" border="0" /></a> <script language="JavaScript" type="text/javascript"><!--
<td valign="middle" nowrap="nowrap"><a href="profile.php?mode=viewprofile&u=4"><img src="templates/subSilver/images/lang_french/icon_profile.gif" alt="Voir le profil de l'utilisateur" title="Voir le profil de l'utilisateur" border="0" /></a> <a href="privmsg.php?mode=post&u=4"><img src="templates/subSilver/images/lang_french/icon_pm.gif" alt="Envoyer un message privΘ" title="Envoyer un message privΘ" border="0" /></a> <a href="http://www.oss117.org/" target="_userwww"><img src="templates/subSilver/images/lang_french/icon_www.gif" alt="Visiter le site web de l'utilisateur" title="Visiter le site web de l'utilisateur" border="0" /></a> <script language="JavaScript" type="text/javascript"><!--
<td valign="top" nowrap="nowrap"><a href="posting.php?mode=quote&p=966"><img src="templates/subSilver/images/lang_french/icon_quote.gif" alt="RΘpondre en citant" title="RΘpondre en citant" border="0" /></a> </td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td colspan="2"><span class="postbody">Un point d'avancement avant Noδl, dΘjα postΘ sur brutal-deluxe.fr mais lα, je le fais en franτais.
<br />
<br />
- une piste DOS 3.2 contient 13 secteurs et non 12 d'o∙ mes calculs erronΘs et une non-reconnaissance de ces disques par le FST DOS3.2. C'est maintenant corrigΘ ;=)
<br />
- le FST DOS3.2 existe, lit bien les disquettes et les reconnait, ce qui est l'essentiel.
<br />
- pas d'avancement sur le FST CP/M, les routines du driver m'ont pris bcp de temps, surtout en dΘbogage et tests.
<br />
<br />
Donc, le driver AppleDisk5.25 gΦre maintenant les blocs de 256, 512 et 1024 octets.
<br />
Il sait les lire, normalement formater des disquettes mais ce n'est pas testΘ encore (il faut modifier les FST)
<br />
Il ne sait pas encore Θcrire un bloc de 256 octets en DOS 3.2, je me suis rendu compte hier soir que je n'avais pas fait la routine <img src="images/smiles/icon_sad.gif" alt="Sad" border="0" />
<br />
Il faut que je valide l'interleaving des routines de formatage, mon petit doigt me dit que la routine existante ne formate qu'en interleaving prodos...
<br />
<br />
J'ai commencΘ α travailler sur l'ajout des commandes JudgeName, Format et EraseDisk du FST DOS3.3 afin de valider mes routines de driver. Je travaillerai sur cela pendant les vacances.
<br />
<br />
J'ai testΘ en long, large et travers les routines de lecture/Θcriture afin de ne pas introduire de rΘgression, pour l'instant TVB avec une lecture/Θcriture normale sur disquette (via Finder) ou une lecture/Θcriture en masse (via Asimov), c'est rassurant.
<br />
<br />
C'est lα que je me rends compte que les commandes qui arrivent α un driver contiennent le numΘro du FST quand elles sont appelΘes mais pas quand les commandes sont de type DRead, DStatus, DWrite, etc. Ce qui, somme toute, est logique mais pourrait Ωtre ennuyeux.
<br />
<br />
Asimov Θcrit ses disquettes en passant le nombre de blocs α Θcrire avec une taille de blocs et cela ne m'inquiΦte mais ne me dΘsespΦre pas, la logique voudrait que la paire taille d'un bloc / nombre de blocs sur un volume soit unique :
<br />
- 512 / 280 pour ProDOS ou Pascal (mΩme interleaving)
<br />
- 256 / 560 pour DOS 3.3 ou RDOS 3.3 (mΩme interleaving)
<br />
- 256 / 455 pour DOS 3.2 ou RDOS 3.2 (interleaving α vΘrifier)
<br />
- 1024 / 140 pour CP/M (interleaving spΘcifique
<br />
<br />
Je contacterai les "Θditeurs" des softs d'image s'il y a un problΦme.
<br />
<br />
Sur ce, je vous souhaite un joyeux Noδl,
<br />
<br />
Antoine</span><span class="gensmall"></span></td>
</tr>
</table></td>
</tr>
<tr>
<td class="row2" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">Revenir en haut de page</a></span></td>
<td valign="middle" nowrap="nowrap"><a href="profile.php?mode=viewprofile&u=4"><img src="templates/subSilver/images/lang_french/icon_profile.gif" alt="Voir le profil de l'utilisateur" title="Voir le profil de l'utilisateur" border="0" /></a> <a href="privmsg.php?mode=post&u=4"><img src="templates/subSilver/images/lang_french/icon_pm.gif" alt="Envoyer un message privΘ" title="Envoyer un message privΘ" border="0" /></a> <a href="http://www.oss117.org/" target="_userwww"><img src="templates/subSilver/images/lang_french/icon_www.gif" alt="Visiter le site web de l'utilisateur" title="Visiter le site web de l'utilisateur" border="0" /></a> <script language="JavaScript" type="text/javascript"><!--
<td valign="top" nowrap="nowrap"><a href="posting.php?mode=quote&p=967"><img src="templates/subSilver/images/lang_french/icon_quote.gif" alt="RΘpondre en citant" title="RΘpondre en citant" border="0" /></a> </td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td colspan="2"><span class="postbody"><img src="images/smiles/icon_eek.gif" alt="Shocked" border="0" /> impressionnant, je suis depuis le dΘbut et n'en loupe pas une miette
<br />
<br />
Bonne continuation, et joyeux noδl α toi et α toute la bande <img src="images/smiles/icon_wink.gif" alt="Wink" border="0" /><br />_________________<br />Je suis sur de "rien", mais ne je suis pas sur du "tout".</span><span class="gensmall"></span></td>
</tr>
</table></td>
</tr>
<tr>
<td class="row1" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">Revenir en haut de page</a></span></td>
<td valign="middle" nowrap="nowrap"><a href="profile.php?mode=viewprofile&u=19"><img src="templates/subSilver/images/lang_french/icon_profile.gif" alt="Voir le profil de l'utilisateur" title="Voir le profil de l'utilisateur" border="0" /></a> <a href="privmsg.php?mode=post&u=19"><img src="templates/subSilver/images/lang_french/icon_pm.gif" alt="Envoyer un message privΘ" title="Envoyer un message privΘ" border="0" /></a> <a href="http://flaith.free.fr" target="_userwww"><img src="templates/subSilver/images/lang_french/icon_www.gif" alt="Visiter le site web de l'utilisateur" title="Visiter le site web de l'utilisateur" border="0" /></a> <script language="JavaScript" type="text/javascript"><!--
Le FST DOS 3.3 formate maintenant en DOS 3.3 les disquettes qu'on lui donne α manger !
<br />
<br />
Le FST DOS 3.2 formate maintenant la premiΦre piste en DOS 3.2 des disquettes qu'on lui donne α manger, hum ! La routine de vΘrification du formatage est α modifier pour pouvoir la considΘrer bonne pour le service, ie. pour formater une disquette entiΦrement.
<br />
<br />
J'ai ajoutΘ les routines de prΘnibblization en DOS 3.2 et d'Θcriture d'un secteur.
<br />
<br />
Je vois le bout du tunnel !!!!!!
<br />
<br />
antoine</span><span class="gensmall"></span></td>
</tr>
</table></td>
</tr>
<tr>
<td class="row2" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">Revenir en haut de page</a></span></td>
<td valign="middle" nowrap="nowrap"><a href="profile.php?mode=viewprofile&u=4"><img src="templates/subSilver/images/lang_french/icon_profile.gif" alt="Voir le profil de l'utilisateur" title="Voir le profil de l'utilisateur" border="0" /></a> <a href="privmsg.php?mode=post&u=4"><img src="templates/subSilver/images/lang_french/icon_pm.gif" alt="Envoyer un message privΘ" title="Envoyer un message privΘ" border="0" /></a> <a href="http://www.oss117.org/" target="_userwww"><img src="templates/subSilver/images/lang_french/icon_www.gif" alt="Visiter le site web de l'utilisateur" title="Visiter le site web de l'utilisateur" border="0" /></a> <script language="JavaScript" type="text/javascript"><!--
<td align="left" valign="middle" nowrap="nowrap"><span class="nav"><a href="posting.php?mode=newtopic&f=19"><img src="templates/subSilver/images/lang_french/post.gif" border="0" alt="Poster un nouveau sujet" align="middle" /></a> <a href="posting.php?mode=reply&t=193"><img src="templates/subSilver/images/lang_french/reply.gif" border="0" alt="RΘpondre au sujet" align="middle" /></a></span></td>
<td align="left" valign="middle" width="100%"><span class="nav"> <a href="index.php" class="nav"> Index du Forum</a>
-> <a href="viewforum.php?f=19" class="nav">Recherches techniques (hard ou soft)</a></span></td>
<td align="right" valign="top" nowrap="nowrap"><span class="gensmall">Toutes les heures sont au format GMT + 1 Heure</span><br /><span class="nav"></span>
</td>
</tr>
<tr>
<td align="left" colspan="3"><span class="nav">Page <b>1</b> sur <b>1</b></span></td>
<td nowrap="nowrap"><span class="gensmall">Sauter vers: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ forms['jumpbox'].submit() }"><option value="-1">SΘlectionner un forum</option><option value="-1"> </option><option value="-1">GENERALITES</option><option value="-1">----------------</option><option value="1">REGLES DE BASE DU FORUM</option><option value="2">PRESENTATION DES MEMBRES</option><option value="3">FAQ</option><option value="24">LES VENDEURS DE Q et assimilΘs...</option><option value="-1"> </option><option value="-1">La ligne des APPLE II</option><option value="-1">----------------</option><option value="4">APPLE II et II+</option><option value="5">APPLE IIe</option><option value="6">APPLE IIc et IIc Plus</option><option value="7">APPLE IIGS</option><option value="8">ITT2020</option><option value="9">BELL & HOWELL</option><option value="-1"> </option><option value="-1">ON AIME AUSSI...</option><option value="-1">----------------</option><option value="25">APPLE I</option><option value="10">APPLE /// et ///Plus</option><option value="11">LISA 1, 2, 2/5, 2/10 et ... XL</option><option value="-1"> </option><option value="-1">LOGICIELS</option><option value="-1">----------------</option><option value="12">PROBLEMES DIVERS</option><option value="13">PROTECTION MALEFIQUE</option><option value="23">EMULATION</option><option value="-1"> </option><option value="-1">LES CARTES ET PERIPHERIQUES</option><option value="-1">----------------</option><option value="14">CARTES COPROCESSEUR</option><option value="15">CARTES MEMOIRE</option><option value="16">CARTES POUR DISQUES</option><option value="17">AUTRES CARTES</option><option value="18">PERIPHERIQUES</option><option value="-1"> </option><option value="-1">EN VRAC ET DIVERS</option><option value="-1">----------------</option><option value="19"selected="selected">Recherches techniques (hard ou soft)</option><option value="20">ACHATS,VENTES ET/OU ECHANGES</option><option value="21">DIVERS...MAIS TOUJOURS EN RELATION AVEC APPLE!</option><option value="22">LES PETITS MAUDITS A EVITER</option></select><input type="hidden" name="sid" value="88dc291636b558c274916ca04b217a32" /> <input type="submit" value="Aller" class="liteoption" /></span></td>
</tr>
</table></form>
<span class="gensmall">Vous <b>ne pouvez pas</b> poster de nouveaux sujets dans ce forum<br />Vous <b>ne pouvez pas</b> rΘpondre aux sujets dans ce forum<br />Vous <b>ne pouvez pas</b> Θditer vos messages dans ce forum<br />Vous <b>ne pouvez pas</b> supprimer vos messages dans ce forum<br />Vous <b>ne pouvez pas</b> voter dans les sondages de ce forum<br /></span></td>