Dimanche 01/10/2006.
Voici quelques écrans supplémentaires correspondant
à l'état d'avancement de mon projet FASTDSK
(création d'un outil permettant de constituer rapidement des
disks images).
Tout d'abord, compte tenue de l'organisation de la mémoire, je
ne pourrais pas avoir BASIC.SYSTEM chargé pendant
l'exécution. Il a donc fallu que je créé un
launcher .SYSTEM s'occupant de la mise en place du reste de
l'application (pas eu le temps d'analyser le relocator de ProDOS aussi
je charge en plusieurs fois ce dont j'ai besoin).
Il fait des contrôles de 1er niveau (mémoire),
déconnecte les éventuels volumes /RAM en slot 3 (car je
fais un usage direct de la mémoire via les banks), fixe le
prefix courant (utile si FASTDSK.SYSTEM est lancé à
partir d'une ligne sous basic avec l'instruction "-" depuis une autre
unité et/ou autre répertoire), charge le fichier de
configuration puis le programme proprement dit qui est alors
exécuté:
La configuration est la 1ère chose dont il faut s'occuper avant
de commencer (sauf si la dernière version sauvegardée
vous convient).
Avec les touches haut et bas, il est possible de naviguer sur les
différentes options sélectionnables. L'option courante
est celle apparaissant en vidéo inversée.
La toute première chose à régler est de
déterminer sur quel volume et quel répertoire seront
sauvegardés les disques images constitués. Il faut taper
return sur la 1ère option qui est par défaut à
<UNDEFINED!>.
Vous arrivez alors sur un nouvel écran qui résulte de la
modification du MLI Quit.
Ce dernier a fait l'objet d'un article sur ce site, bien entendu dans
la perspective de ces adaptations.
A présent, c'est du 100% 6502 (sans code 65c02), en 40 colonnes,
avec sélection d'un répertoire. (Bref , visuellement,
ça ne ressemble plus trop à celle d'origine!!)
Il est bien entendu possible de faire scroller la liste si elle
dépasse la taille de la fenêtre d'affichage.
L'aide en bas de l'écran permet de savoir quelles touches
employer.
Par exemple, je veux pour mes transferts utiliser le répertoire
TEMP sur l'unité ProDOS en slot 7, drive 1.
Je vais sur le répertoire en question et valide en tapant return
sur <SELECT DIR>.
Quand le programme me ramène sur le menu de configuration, le
répertoire
choisi est bien le bon:
Je passe à présent en revue les autres options.
Les collectionneurs comme moi peuvent être organisés ou
pas. J'entends par là avoir des lots de disquettes
numérotées, triées par type, etc... ou avoir aussi
des disquettes individuelles reçues ainsi en flux continu...
J'ai donc donné la possibilité d'avoir 2 usages
possibles. Soit l'utilisateur saisit en entier le nom du disque image
qu'il va créer, soit il y a une solution automatisée.
Chacune a un avantage et un inconvénient.
Si l'option "USE STD NAME" est à NON, à chaque nouvelle
disquette à passer dans le drive, il faudra saisir manuellement
le nom de la sauvegarde sur 15 caractères. C'est assez chiant
(il faut bien le dire) quand on ne veut pas passer trop de temps
à celà mais ça permet de donner une idée du
contenu du disk.
L'autre solution est d'avoir un nom standardisé de la forme
CDNNNNNS.DSK.
C'est ma préférée et vous allez voir pourquoi
(outre le fait que mon héritage de The White Man
est super bien
classé).
Un nom standardisé est constitué de 4 parties: C, D,
NNNNN et S. Le ".dsk" est automatiquement rajouté à la
fin.
Le 1er caractère 'C' est la catégorie du disk. Vous
mettez bien entendu ce que vous voulez. Si vous avez plusieurs sources
d'approvisionnement en diskettes 5.25", vous pouvez mettre une lettre
symbolisant votre donateur pour différencier les .dsk de ceux de
votre propre logithèque. Vous pouvez aussi mettre par là
le type du soft (ex: J pour Jeu, U pour Utilitaire, etc...) c'est vous
qui voyez. Vous avez de la lettre A à la lettre Z.
Le 2nd caractère est une sous catégorie donnant plus de
détail (D=Détail). Par exemple dans une catégorie
J (jeu), vous
pouvez avoir un jeu d'arcade, de flipper, d'aventure, etc... ou vous
pouvez vouloir trier selon le nom de l'éditeur...
Bref encore des choix à faire. Vous pouvez utiliser les lettres
de A à Z et les chiffres.
Ensuite vient le numéro du disk. J'ai mis 5 chiffres (NNNNN)
pour voir
large (qui ne se souvient pas du fameux chiffre "10.000 softs" pour
votre apple II). Voilà pourquoi 5 chiffres, même si pour
beaucoup d'entre nous, il est franchement optimiste!!!
Puisqu'on parle de saisie d'informations à l'écran, j'en
profite pour signaler que j'ai écrit une routine qui fait des
input bien mieux que ce qu'on trouve ailleurs. Par exemple avec
DSK2FILE, si vous tapez les caractères de
controle ou esc ou des
trucs interdits, la sauvegarde va merdouiller. Le développeur ne
s'est pas foulé. Un JSR à une routine de la rom et basta.
Merci pour les utilisateurs avec des grosses paluches maladroites, ils
peuvent recommencer!!!
Chez moi, c'est du propre avec masque de saisie et liste de touches
autorisées. Ici la saisie du numéro du disk et validation
par return:
On passe enfin au dernier caractère S. Il représente la
face de votre disquette: Front, c'est la face 1 et Back la face 2.
Bon maintenant l'explication de l'intérêt de cette
méthode.
Une fois que vous avez rentré ce découpage (par exemple:
C=Jeu & D=Arcade), lorsque vous allez vous tapez les 200 disks
correspondants, vous n'aurez RIEN DU TOUT A SAISIR A L'ECRAN!!!
Vous mettez votre disquette, il créé un nom.
Le coup d'après, si vous étiez sur Front, il s'est
positionné sur Back.
Le coup d'après il est repassé sur Front en
incrémentant le numéro du disk.
Si vous êtes organisé avec des valises de disquettes
numérotées et classées, ça va se faire les
doigts dans le nez.
Vous aurez tout de même (je vous rassure) la possibilité
de faire des ajustements si par exemple il n'y a pas de face 2 sur une
diskette. En une touche vous réajustez le nom.
Bref, c'est plus rapide mais le contrepartie c'est d'avoir tout
préparé.
Personnellement, même avec la 1ère méthode, je dois
renommer sur pc mes .dsk car je trouve que 15 caractères c'est
trop peu.
Alors je préfère encore faire vite le boulot
côté apple II
en enchaînant les disquettes et passer plus de temps pour
renommer
proprement sur pc ensuite. Maintenant, c'est sur que si vous avez 3
disks à passer, la question ne se pose pas :-)))
L'option Trace Log permet de combler une grosse lacune sur les outils
existants.
En l'activant, FASTDSK va tenir à jour
(sur le répertoire
où il stocke les .DSK) un fichier FASTDSK.LOG où il
mentionnera comment s'est déroulé le process de
création des disks images.
Si no problemo, juste une ligne: disk trucmuche OK.
En cas de couille dans le potage, vous aurez une visu "à la
Locksmith" de la map du disk avec les secteurs défaillants (ce
que vous avez à l'écran en temps normal).
Ca vous permettra d'y revenir plus tard pour essayer de
récupérer ce que vous pouvez sur chaque disk HS en ayant
le détail des secteurs à l'origine du soucis sous la main
(les secteurs HS sont remplis de zéros dans le
.dsk).
Pas la peine de noter sur papier tous les secteurs nazes, le programme
le fait à votre place... Céti pas bôoooo ça??
L'option suivante vous permet de travailler avec votre drive 2 si le
numéro 1 a mal aux dents et si vous -gros fainéant que
vous êtes- avez la flemme de changer le branchement des nappes.
Les options suivantes sont réservées aux softs
plombés (méthode minable -cf les 1er cours de
déplombage de Godfather) avec des
changements de markers
de champs.
Evidemment, ça ne déplombe pas le code de contrôle,
mais
ça permet toujours d'avoir un disk image d'un soft plombé.
A vous d'analyser au préalable les headers/trailers via NIBBLE
AWAY par exemple.
On termine classiquement par le choix de considérer un secteur
HS quand il y a une erreur de checksum. Si vous avez mis YES, il y aura
des zéros à la place des datas lues, sinon il y aura le
caca lu quand même (ce qui peut être utile s'il n'y a qu'un
seul nibble de flingué par exemple).
Quand vous avez fini la phase de paramétrage, il est
conservé en mémoire en l'état.
Mais quand vous quittez la page de configuration, vous pouvez
sauvegarder les modifs dans le fichier FASTDSK.CONF pour le prochain
coup. A vous de voir...
C'est tout pour aujourd'hui... 02:30 AM quand même!!!!