Mercredi 06/12/2006.


Weblog au fil de l'eau sur le concours organisé par **** **********.

Ca y est!!!
C'est parti pour les tests de mon projet FASTDSK en grandeur nature sur un Apple IIe.

Jusqu'à présent je n'avais fait que des tests avec l'émulateur Apple Oasis.

C'est donc avec une certaine appréhension que j'ai lancé la machine...
Aïe, ça commence mal. J'ai l'impression de mes 2 drives ont des disfonctionnements et ce avant même que je commence à tester mon programme.
Certains softs ne bootent pas ou affichent des erreurs alors qu'il n'y a pas très longtemps ils fonctionnaient impeccablement.
Le nombre de crashs est suspect.
Après quelques tests, c'est confirmé: mes 2 lecteurs ont mal aux dents.
Je ne peux pas tester dans ces conditions.
Je dois changer de hardware.
Exit tout, y compris la carte contrôleur!
Le temps de mettre la main sur une autre carte et un disk II correct, le temps est déjà bien avancé.
Zut alors, ça traine...
Bon ok, la machine est fonctionnelle à présent.

Je commence.
ARGHHHHH!!!
D'emblée, le soft se met à déconner!
Gros problèmes lors de la lecture des pistes stockées en mémoire auxiliaire.
Des erreurs partout sur au moins 10 secteurs par piste et la tête de lecture relit chaque track 10 fois.
Je suis vert parce qu'il n'y avait pas de soucis sous Apple Oasis.

En forçant le stockage que sur la ram princ après un petit patch du programme je constate que c'est bien pour la ram aux qu'il y a un blème.
Je reboote Merlin-8 et me revoilà à analyser le code de la routine core faisant la lecture du champ data et le postnibblizing.
Je recalcule les cycles entre chaque lecture de nibble.
Si c'est ok pour les pistes chargées en ram principale et pas le reste, c'est que pour la partie ram auxiliaire il y a des instructions supplémentaires (activation de ramread/ramwrite, écriture du numéro du bank dans BankSel et activation de AUXWRT).
Je décide d'optimiser le début de la routine en collant des morceaux de codes pendant la lecture des markers du champ datas.
Entre chaque lecture de nibble D5, AA et AD, à présent il y a un peu de code qui s'exécute pour autre chose (des initialisations).
Si le code est répété, ce n'est pas grave, de toute façon il faut bien attendre le drive!!!

EUREKA. A présent ça passe!
Comme quoi, j'avais bien raison de pester contre l'absence de warning sur le nombre de cycles lors de la lecture dans les livres du commerce!!!

Je continue à tester et trouve 2 autres bugs qui étaient transparents sous émulateur! Comme quoi à 1 mhz, on voit mieux certains soucis (je suis toujours à la vitesse max sous émulateur, à tord de toute évidence!!)
Je modifie aussi un peu la gestion des erreurs.

Du coup, je passe en version 20061206 et il y a encore 1 modif à tester.

Mes tests ont été faits sur 2 configurations de mémoire.

D'abord en 128k avec la carte ram de base sur le platinum:

IIe 128k
IIe 128k

Puis avec une carte RamWorks III 1024k:

IIe 1024k
IIe 1024k

Je fais quelques comparaisons de temps avec DSK2FILE sans activer la génération de la log.

Avec FASTDSK 128k, il faut au total 21 secondes pour créer un disk image .DSK.
DSK2FILE fait la même chose en 32 secondes.
C'est déjà un bon bonus pour cette version de FASTDSK que je n'ai fait que parce que le concours demande à la base que ce soit compatible avec un IIe 128k.

Je boote Locksmith Fast Copy (version 6.3) pour voir combien de temps il met pour lire une face de disquette 5,25".
Il lui faut 9 secondes pour avaler les 35 pistes.

Je passe à présent à FASTDSK 256k qui lit lui aussi la disquette en une seule passe.
LA VACHE!!!!
Il lit aussi la face de la disquette en 9 secondes en faisant une postnib 6-2!

Alors là, je suis C.O.N.T.E.N.T :-))))))
Aussi bien que Locksmith alors qu'il y a encore quelques mois je n'avais jamais mis les mains dans le camboui du disk II!!!!

Ce qui est important à signaler, c'est qu'au bout de 9 secondes, je peux commencer à sortir la disquette du lecteur soit pour la retourner soit pour en mettre une autre.
Mais c'est pas fini, car il faut aussi que le programme écrive le .DSK sur l'unité ProDOS.
Il faut rajouter 11 secondes, soit un total de 20 secondes pour faire un disk image.
Mais je gagne bien dans la phase manuelle de swapping... c'était le but!

J'ai encore beaucoup de boulot pour valider tous les cas de figure.
Je me demande si je vais pouvoir finir dans les temps avec ce qui m'attends par ailleurs pour la fin de l'année côté professionnel.
De plus il faut que la doc livrée soit en anglais. Et ça risque de me prendre du temps si SbM n'a pas le temps de faire la traduction.
Pour le motiver, je lui scanne les couvertures des magazines Pom's qui lui manquent sur sa page web dédiée.
Reste aussi à lui faire tous les disk images des 50 numéros de ce magazine. Ca sera l'occasion de poursuivre les tests en espérant que les disquettes de The White Man ne soient pas trop esquintées après toutes ces années. Je croise les doigts...

Finalement, je ne vais pas prendre de risque. C'est décidé, je vais demander ce soir à Jean-Pierre, Arnaud et Thierry s'ils veulent bien me donner un coup de main pour faire des tests.


Je fais un rapide controle d'un .DSK en le remontant sur mon vieux PC (on ne rigole pas, c'est une brave bête qui mouline à 700 mhz, si si!!!!!)

Comme j'ai défini comme unité de stockage la carte compact flash présente sur ma CFFA, il faut que la connecte à présent sur mon lecteur de carte SanDisk ImageMate SDDR-75:

ImageMate
ImageMate

Puis j'utilise CiderPress pour récupérer ça:

CiderPress
CiderPress

Bon, ben, faudra continuer tout celà demain...