<td width="100%"><a href="viewtopic.php?p=286#286"><img src="templates/subSilver/images/icon_minipost.gif" width="12" height="9" alt="Message" title="Message" border="0" /></a><span class="postdetails">PostΘ le: Ven 31 Ao√ 2007, 9:21<span class="gen"> </span> Sujet du message: Mac Arthur's war (SSG, 1988)</span></td>
<td valign="top" nowrap="nowrap"><a href="posting.php?mode=quote&p=286"><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">A typical wargame from SSG. I lack the documentation, giving more information would be difficult...
<br />
<br />
All I can say is that it was an easy crack but the hardest to update to make it bootable and playable due to the use of the complete memory of the Apple II.
It is nothing but a ten sectors per track disk. Each sector is 4*4 coded. The advantage of using 4*4 coded nibbles is that it does not require any ram space to decode nibbles into bytes.
<br />
<br />
<br />
<span style="font-weight: bold">BOOT TRACE</span>
<br />
- 9600<C600.C6FFM
<br />
- 96FB: AD E8 C0 60
<br />
- 9600G
<br />
The code we get at $0800 loads data from $1000 to $10FF
<br />
- 96FB: A9 59 8D 8D 08 A9 FF 8D 8E 08 4C 01 08
<br />
- 9600G
<br />
The code at $1000 loads data from $BD00 to $BFFF. It sets a JMP $BD00 at $03D0 and then jumps to $BD00. That is the entry point of the RWTS. Let's detail it...
<br />
<br />
<br />
<span style="font-weight: bold">THE RWTS</span>
<br />
$BD00: the entry point. It uses ZP values from $00 to $05.
<br />
$BDDC: boing! The error management routine.
<br />
$BDEB: read marker data
<br />
$BE4C: move the arm.
<br />
$BE8A: read sector
<br />
$BF00: write sector
<br />
<br />
The zero page values:
<br />
$00: high-byte start address (eg. $BA for $BA00)
<br />
$01: high-byte end address (eg. $BC for $BCFF)
<br />
$02: not used, always $00
<br />
$03: command ($1: read, $2: write)
<br />
$04: track
<br />
$05: sector
<br />
<br />
A simple example:
<br />
- loading data from $2000 to $3FFF from track 2, sector 0:
<br />
- put these values at $00: 20 3F 00 01 02 00
<br />
- perform a JSR or a JMP to $BD00
<br />
<br />
<br />
<span style="font-weight: bold">DISK COPY</span>
<br />
As you can see, reading the disk is an easy task. Please note that track 0 contains NINE sectors only, not ten. Perform the read manually:
<br />
- $00: 10 18 00 01 00 00
<br />
- BD00G
<br />
- save data from $1000 to $18FF on your second disk drive
<br />
<br />
Transform the following pseudo-code in assembly and run it to get the remaining tracks.
<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=288"><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">And the code of my modified RWTS. Please note that the write routine has been commented as there are some timing issues with it. I wanted to get room on the memory thus replacing opcodes but that led to timing problems: my 32 cycles were lost...
<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>