Titre Fast Compare



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:



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'.

Comparaison avec Locksmith
Comparaison avec Locksmith
Comparaison avec Locksmith
Comparaison avec Locksmith


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:

Soft
Soft
Soft
Soft


Quand une différence est détectée, le secteur apparait en inverse:

Comparaison


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)

Comparaison
Comparaison


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...)

Comparaison
Comparaison


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 disks en erreur
2 disks en erreur

 

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: 
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):

Running on a real Apple II Platinum
Running on a real Apple II Platinum
Running on a real Apple II Platinum


Floppy
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:

Source
Source
Source
Source
Source
Source