1) Présentation
La disquette de cet article permet de résoudre des situations
que peut rencontrer tout passionné de l'Apple II un tant soit
peu collectionneur. Si vous vous reconnaissez dans ce profil, vous avez
forcément
été confronté à un des cas de figure
exposés ici.
Sur votre Apple II
Vous avez dans vos cartons personnels votre propres disquettes
(duplicables avec Locksmith "Fast Copy").
Vous avez été contacté par un ancien de l'Apple II
ou vous l'avez vous même sollicité pour qu'il vous donne
ses propres disquettes 5" 1/4.
Vous avez récupéré en chinant dans une brocante
des boites à chaussures remplies de disquettes.
Vous avez craqué sur ebay pour une caisse de copies de softs
à un prix défiant toute concurrence.
En faisant le tri dans les disquettes ainsi reçues, vous avez
constaté que des programmes présents dessus font
déjà partis de votre logithèque.
Vous voulez être sur que la copie est identique à votre
propre version pour diverses raisons:
- Mettre la copie reçue dans votre boite de disquettes
réutilisables à d'autres fins (softs inconnus
récupérés sur
internet, vos nouveaux développements, ...) En effet, les
disquettes 5,25"
n'étant plus fabriquées ni commercialisées, il
faut du
répondant pour assurer vos nouveaux besoins.
- Pour ne pas avoir à créer un backup sous forme de
disque image. Créer beaucoup de disques images prend du temps et
vous ne voulez pas recommencer tout le boulot de transfert pour des
disquettes qui sont peut-être exactement identiques aux votres
(en partant du principe que vous avez déjà
transféré toutes vos disquettes personnelles).
Sur votre ordinateur moderne
Vous avez très certainement sur le bureau de votre ordinateur
actuel (pc sous Windows, Mac OS, Linux, ...) un émulateur de
votre
chère machine 8 bits.
Afin de vous amusez "comme au bon vieux temps", vous avez prévu
de quoi "nourrir" cet émulateur en transférant toutes vos
disquettes physiques personnelles 5.25" sous forme de disques images
(.dsk, .do, .po, ...)
Vous êtes allé par ailleurs sur des serveurs de disques
images (Asimov, Ground, ...) pour télécharger tous les
disques images présents dans les répertoires et/ou vous
avez glané à gauche
à droite des disques images proposés par des internautes
sur leurs sites web persos.
Il y a des titres communs entre vos propres disques images et ceux que
vous avez téléchargé en masse.
Comment être sur que le contenu est strictement identique?
Peut-être s'agit-il d'une autre version du soft? Ou bien une
version s'est abimée avec le temps et les aléats de la
durée de
vie des disques durs.
Certains octets voire quelques secteurs ou pistes ont été
endommagés, mais est-ce votre version ou l'autre qu'il faudra
conserver?
Et puis pour stocker tout cela, il faut de la place!
Pour être immédiatement disponibles, les disques images ne
doivent pas être compressés et à raison de 143360
octets par
face de disquette, ça commence à faire son petit poids
(en centaine de mégas
voire quelques gigas).
Vous voudriez pouvoir supprimer des doublons quand le contenu est
identique pour avoir une bibliothèque "propre" composée
de titres uniques.
Pour répondre à ces besoins, il y a bien une
possibilité.
Vous pouvez utiliser le logiciel commercial Locksmith
qui dispose d'une
option à cet effet.
Illustration:
Comparaison de 2 disquettes avec la version Locksmith
6.3
(option 16 Sector Compare du menu UTILS):
Les différences sont mentionnées par le caractère
'C'.
En plus de ne pas être dans le domaine public, il a à
mon sens une grosse lacune.
Ok il compare 2 disques et signale les différences mais ce
témoin d'écart reste au niveau du secteur.
Il n'est pas possible de visualiser les octets/caractères
dissemblables entre 2 secteurs identiques de 2 disquettes
différentes.
Dans l'exemple donné ci-dessus, on ignore ce qui est
différent pour les secteurs 1 à 7 de la piste 2.
Or afin de prendre la bonne décision (création d'un
nouveau disque image, conservation de la disquette, ...), il faut
impérativement
pouvoir visualiser ces différences avec un outil ressemblant
à un
éditeur de secteurs.
Oubliez dont cette solution Locksmith car...
Voici l'outil qu'il vous faut: FAST COMPARE.
Il a été programmé par le hacker français
SAM en 1986.
SAM utilise dans son programme une routine de
lecture très
rapide pour lecteur de disquettes 5.25" (Hyper Load); routine en partie
piquée sur un
soft d'Electronic Arts.
Quelques caractéristiques:
- Ecrit sous DOS 3.3.
- 48K
- Gratuit (FREE)
- Le source complet est fourni. (THE ENTIRE SOURCE CODE IS
PROVIDED).
- Fonctionne sur émulateur et sur un vrai apple II. J'ai
testé avec Applewin et Apple Oasis ainsi que sur un Apple IIe
platinum.
- Nécessite d'avoir 2 lecteurs de disquettes
connectés
sur un controleur en slot 6 (ou un émulateur qui gère 2
drives, ce qui est
tout le temps le cas en fait).
- La comparaison se fait en 5 passes (par série de 7 pistes).
- N'accepte que les formats 16 secteurs (ne fonctionne pas avec les
disquettes 13 secteurs ou protégées par des formats non
standards. S'il n'arrive pas à lire un secteur, il vous le fera
savoir par des
BIP BIP BIP et il arrêtera la comparaison).
- Possitibilité de voir le contenu de chaque secteur
différent sous forme de présentation mixte hexa/ascii (la
comparaison entre les 2
disquettes ne fait par une touche de switch 'D' qui fait passer de
l'une à
l'autre et une autre touche 'P' qui switch l'affichage des 128 premiers
et 128 derniers octets du secteur).
Quand une différence est détectée, le secteur
apparait en inverse:

|
En appuyant alors sur 'S', comparaison des 128 premiers octets du
secteur $0A de la piste $12
entre les 2 disquettes: (utilisation de la touche 'D' pour switcher
d'un drive à l'autre)

|

|
La même chose pour les 128 derniers octets du secteur
(utilisation de la touche 'P' pour passer des 128 premiers aux 128
derniers etc...)

|

|
Des fois, il arrive malheureusement qu'en comparant le contenu des
secteurs différents vous vous rendiez compte que les 2
disquettes soient foutues
et bonnes pour la poubelle ;-)

|

|
2) A propos du source
A l'origine, l'exécutable de ce programme se trouvait sur une
disquette de cours du pirate Godfather.
Godfather, qui était en contact avec Sam avant son abandon de la plateforme Apple II, avait
mis ce super programme dans son cours de déplombage 18.2
traitant des fixints (les fixs
intégrés sur la disquette de jeu voire dans le jeu
lui-même).
En voulant assembler sous Merlin-Pro le source
fourni, je me suis
aperçu d'une part qu'il était incomplet (il manquait la
routine de fast
load et elle était référencée juste sous
forme de
EQU $address) et qu'il y avait des erreurs (probablement du au fait que
Sam utilisait un autre
assembleur que Merlin-Pro 2.48 (c) Glen Bredon).
J'ai donc dans un premier temps du récupérer le source du
fast load (présent sur la disquette Godfather's
Product #8 : le Fast Boot
de Sam) et adapter le programme pour Merlin-Pro (ce qui a permis au passage de
mettre en évidence un bug dans cet assembleur). Vous avez donc
à
présent le source complet qui donne l'objet exécutable
(soit dans son format d'origine, c'est à dire un mélange
anglais/français soit totalement en anglais).
3) Les autres usages du programme
Avec un peu d'imagination, cet outil peut servir à d'autres
fins:
- Comparaison de 2 sauvegardes d'un jeu à des instants
différents pour identifier la signification de certains octets
et leur évolution (dans la perspective de faire un fix par
exemple).
- Méthode dite "du fainéant" pour signer un
défi
de programmation. Je me rappelle notamment un défi dans le
Freeware " Force Fix II "
où Eddie Hawk proposait de signer un
encadré vierge pour montrer qu'on avait
compris et vaincu son code. Il "suffisait" de marquer son propre pseudo
dans cette fenêtre. La méthode du fainéant consiste
à
attendre que quelqu'un le fasse, lui demander sa version signée,
utiliser FAST COMPARE
pour voir ce qu'il a changé par rapport à l'original non
signé,
signer à sa place et faire le V de la Victoire. Je connais au
moins une personne qui un jour m'a demandé ma version
signée pour ne pas avoir à
rechercher. Il se reconnaitra ;-)))
etc...
Test de Fast Compare sur un vrai apple IIe (ici
un
de mes platinums, le modèle avec pavé numérique
incorporé qui n'est pas sorti en France):

|
DOS 3.3
|
Download Fast Compare (with source codes) (gzipped)
|
File: Fast_Compare_Sam_20051019_Final.do
Disk: DOS 3.3 Volume 254
Name
Type Auxtyp Modified
Format Length
------------------------------------------------------------------------------
DISK*
BAS $0801 [No
Date]
DOS 98
FAST.COMPARE.FRENCH
BIN $0BFA [No
Date]
DOS 3020
FAST.COMPARE.ENGLISH
BIN $0BFA [No
Date]
DOS 3020
T.FAST.COMPARE
TXT $0000 [No
Date]
DOS 18567
T.SCROLL
TXT $0000 [No
Date]
DOS 2975
T.ACCOLAD.BOOT1
TXT $0000 [No
Date]
DOS 3735
T.BOOT2
TXT $0000 [No
Date]
DOS 1460
T.BOOT0
TXT $0000 [No
Date]
DOS 12303
SCROLL
BIN $2000 [No
Date]
DOS 299
SCREEN.BOOT
BIN $2200 [No
Date]
DOS 1024
ACCOLAD.BOOT1
BIN $0800 [No
Date]
DOS 256
BOOT2
BIN $BB00 [No
Date]
DOS 256
INSTALLER
BAS $0801 [No
Date]
DOS 1518
------------------------------------------------------------------------------
Le début de quelques sources: