<td valign="top" nowrap="nowrap"><a href="posting.php?mode=quote&p=114"><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">Superstar Indoor Sports offers four high-quality, challenging games that will keep you entertained long after other games have been retired from competition.
<br />
<br />
That's true it is a nice game so is its protection <img src="images/smiles/icon_wink.gif" alt="Wink" border="0" />
On a ProDOS diskette, the protection lies in a change of values used to 'denibbilize' data read from the diskette.
<br />
A standard read routine cannot read the entire data correctly...
<br />
<br />
<br />
<span style="font-weight: bold">BOOT TRACE</span>
<br />
Please note I have a IIgs, then my changes in the $C6xx data occurs at $96FB not at $96F8 as it would have been with another computer.
<br />
- 9600<C600.C6FFM
<br />
- 96FB: AD E8 C0 4C 59 FF
<br />
- 9600G
<br />
Bing! A nearly standard ProDOS boot0 loader. At $0876 there is a call to $932 which is not normal. Keep that in mind!
<br />
<br />
- 96FB: A9 98 8D FE 08 A9 01 4C 01 08
<br />
- 9800: A9 C2 8D E8 24 4C 00 20
<br />
- 9600G
<br />
ProDOS is now loaded and has displayed the "CANNOT FIND A X.SYSTEM FILE". That is what we have changed in our $9800 code: we have replaced SYSTEM with BYSTEM so that ProDOS is not able to launch the program, we just have to press CTRL-RESET to go into the monitor...
<br />
<br />
ProDOS is now loaded into memory starting at $2000. After hours of search, it appears that the disk read routines are normal but that the data of the tables used to "denibbilize" disk data have been changed...
<br />
<br />
Please note that the addresses given are not the final ones as ProDOS relocates itself into the $D000..$FFFF space. The addresses are the one after our "break" step:
<br />
- $5496: FC but should be 00
<br />
- $54FF: 00 but should be FC
<br />
- $5503: FF but should be 96
<br />
- $55FF: 96 but should be FF
<br />
The data above are linked to the tables used by ProDOS to convert nibbles from the disk to data put in memory. What shall we do then?
<br />
<br />
<br />
<span style="font-weight: bold">DISK COPY</span>
<br />
As ProDOS is active, why not use the READ_BLOCK MLI function? That is what I have decided to do: read a block, copy to my IIgs memory, loop until the end of both sides of the disk.
<br />
<br />
As the program is really easy to write, I will not go into the details but it is freely available upon request.
<br />
<br />
We now have both sides of the game into our IIgs memory. You reboot to a normal/standard ProDOS 8 version. I have written the same program as above using the WRITE_BLOCK MLI function.
<br />
<br />
Our disk is now copyable but not bootable...
<br />
<br />
<br />
<span style="font-weight: bold">REMOVE THE PROTECTION</span>
STA $36C</td> </tr></table><span class="postbody">
<br />
<br />
...it changes the index values used to convert nibbles to bytes! We need to skip it:
<br />
- Launch your favorite disk editor
<br />
- Read track 0, sector 0
<br />
- At offset $76, set $2C (BIT opcode) where it was $20 (JSR opcode)
<br />
- Save the sector
<br />
<br />
Boot the disk... INSERT SYSTEM DISK - ERR F... Aargh! That is but normal as index and values of the tables used to convert data from the disk are also in the ProDOS file (see the DISK COPY part), we must make a decision:
<br />
- go and lose time on changing bytes in the ProDOS file or
<br />
- replace the ProDOS file?
<br />
<br />
I have replaced the ProDOS V1.4 file with ProDOS V1.8 from the New Print Shop by Broderbund <img src="images/smiles/icon_wink.gif" alt="Wink" border="0" />
<br />
<br />
Boot the disk... Bingo! Your backup copy is now ready,
<br />
<br />
Toinet</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 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"selected="selected">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">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>