Obligement - L'Amiga au maximum

Dimanche 16 décembre 2018 - 16:38  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles en d'autres langues


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


En pratique : AmigaOS 1.3 - Utilisation du RAD Disk
(Article écrit par Dominique Lorre et extrait d'Amiga News Tech - juin 1990)


Le Workbench 1.3 nous a apporté une nouveauté intéressante qui est le disque RAD, un autre genre de RAM Disk. L'intérêt du disque RAD est multiple. Premièrement, il résiste au redémarrage, ce qui est utile pour conserver des données quand on n'a pas une disquette sous la main. En second lieu, on lui attribue une taille fixe, l'intérêt est moins évident mais s'explique par le fait qu'on peut lui donner la taille d'une disquette. Avec le Kickstart 1.3, il est possible de redémarrer sur le RAD, ce qui est une solution permettant d'accélérer le redémarrage du système. En dernier lieu, on peut lui attribuer tous les avantages du RAM Disk et notamment la rapidité.

Comment utiliser RAD sans tomber dedans ?

La réponse se trouve dans le fichier Mountlist, bien évidemment. En voici un exemple :

RAD: Device = ramdrive.device
Unit = 0
Flags = 0
Surfaces = 2
BlocksPerTrack = 11
Reserved = 2
Interleave = 0
LowCyl = 0 ; HighCyl = 79
Buffers = 5
BufMemType = 1
#

Comme nous le montre cette entrée du fichier Devs:Mountlist, le disque RAD est géré par le fichier ramdrive.device. Si jamais vous l'avez retiré de votre système, le disque RAD ne sera jamais accessible.

Le numéro d'unité (Unit) sera toujours 0 avec le Workbench 1.3 (sauf que... mais j'y reviendrai). Flags est un paramètre passé à l'ouverture de la fonction OpenDevice et ici a une valeur nulle. Surfaces est le nombre de surfaces du support utilisé. Or, physiquement, on ne peut pas dire que la mémoire ait deux faces comme une disquette (où irait-on, je vous le demande). On peut d'ailleurs formuler la même remarque en ce qui concerne les paramètres BlocksPerTrack, Reserved, Interleave, LowCyl et HighCyl. Ces valeurs sont strictement les mêmes que celles d'une disquette : étonnant, non ? En fait, si vous n'avez pas beaucoup de mémoire disponible (ici 880 ko, soit la taille d'une disquette), cette entrée risque de ne pas passer. Il vous faudra alors réduire la valeur de HighCyl en fonction de votre mémoire disponible (par exemple 19 pour un RAD de 220 ko). Buffers est le nombre de tampons mémoire utilisés avec ce disque et BufMemType le type de la mémoire utilisée par les tampons.

Ce premier exemple de disque RAD offre l'énorme avantage d'être compatible avec le lecteur DF0:. Cela signifie que vous pourrez effectuer une commande du type :

DiskCopy FROM DF0: TO RAD:

...sans l'ombre d'un problème. Il est connu que l'instruction DiskCopy est de loin la plus rapide pour la copie de fichiers, et cet ordre vous fera gagner beaucoup plus de temps qu'une instruction plus classique telle que :

Copy FROM DF0: TO RAM: ALL

Évidemment, il vous faudra dans ce cas beaucoup de mémoire disponible.

Il est encore utile d'avoir un disque RAD de la taille d'une disquette quand on utilise DiskSalv :

DiskSalv FROM DF0: TO RAD:

Ainsi, si une de vos disquettes est endommagée, vous pourrez essayer de la récupérer sur RAD:. Cette manière d'utiliser RAD est une raison valable de préférer de la mémoire supplémentaire à un second lecteur de disquette (1 Mo de mémoire est très juste pour ce genre d'opérations).

Parlons maintenant du FastFileSystem. Si vous avez choisi de l'utiliser sur RAD: (en perdant alors la compatibilité avec les disquettes qui utilisent l'ancien système, appelé OldFileSystem), il vous faudra une entrée Mountlist de ce type :

RAD: Device = ramdrive.device
Unit = 0
Flags = 0
Surfaces = 2
BlocksPerTrack = 11
Reserved = 2
Interleave = 0
LowCyl = 0 ; HighCyl = 79
Buffers = 5
BufMemType = 1
FileSystem = L:FastFileSystem
GlobVec = -1
DosType = Ox444F5301
#

Je dirai tout de suite que l'utilisation de RAD en FastFileSystem n'a d'intérêt pratique que pour les développeurs voulant tester rapidement leurs programmes. Il reste que vous pouvez choisir cette option pour gagner quelques précieuses millisecondes ou encore pour pouvoir utiliser les protections R, W et X qui ne sont disponibles que sous FFS.

Beaucoup plus intéressante est la particularité qu'à RAD de résister au redémarrage. Sous Kickstart 1.2, il suffit de faire MountRAD: après la réinitialisation de la machine et, théoriquement, les données sont réutilisables immédiatement. Parfois DiskDoctor est utile pour remettre les choses en place.

Sous Kickstart 1.3, on peut même redémarrer avec RAD. Dans ce cas, il faut avoir utilisé l'option "r" de la commande "SetPatch" dans la startup-sequence :

SetPatch > NIL: r

Cette option, très peu documentée, corrige un bogue du système qui empêchait RAD de résister au redémarrage. D'ailleurs, le facétieux développeur du ramdrive.device a donné le nom RAMB0 au disque RAD, lorsqu'il revient à la vie.

Multiple RAD

Et maintenant, la question qui a tourmenté plus d'un utilisateur d'Amiga : comment avoir plusieurs RAD ? Pas si facile, évidemment. La première solution logique qui vient à l'esprit est le changement du numéro d'unité (le paramètre "Unit" de la Mountlist). Avec un numéro 0, on aurait le premier disque, 1 pour le second, 2 pour le troisième, etc. Cette solution paraît logique car c'est ainsi que l'on procède pour les différents lecteurs de disquette ou les disques durs. Malheureusement, le facétieux développeur du ramdrive.device n'avait (l'usage de l'imparfait n'est pas innocent) pas envisagé cette possibilité et le ramdrive.device ne connaît que l'unité 0.

La méthode la plus élégante étant impraticable, une autre possibilité moins satisfaisante mais néanmoins correcte était de partitionner le disque RAD: comme on le fait pour un disque dur. En théorie, on aurait pu le faire de la manière suivante :

RAD: Device = ramdrive.device
Unit = 0
Flags = 0
Surfaces = 2
BlocksPerTrack = 11
Reserved = 2
Interleave = 0
LowCyl = 0 ; HighCyl = 9 
Buffers = 5
BufMemType = 1
#

RAD1: Device = ramdrive.device
Unit = 0
Flags = 0
Surfaces = 2
BlocksPerTrack = 11
Reserved = 2
Interleave = 0
LowCyl = 10 ; HighCyl = 79
Buffers = 5
BufMemType = 1
#

Malheureusement, cette solution n'est qu'un nouveau moyen de bloquer le système. La commande Format refuse d'initialiser un disque RAD: si LowCyl ne vaut pas 0. La solution existe-t-elle ? Eh bien oui, et je le prouve ! Tout d'abord, je citerai mes sources en disant que la ruse provient d'un message de Carolyn Scheppner du CATS (Commodore Amiga Technical Support), envoyé sur UseNet et placé sur SgtFlam par François Rouaix. Comme je n'ai plus le texte original sous les yeux, je me contenterai de vous résumer la chose. Pour obtenir un second RAD, il faut effectuer tout d'abord une copie du fichier ramdrive.device qui se trouve dans Devs:. Cette copie devra se trouver également dans le répertoire Devs: et portera par exemple le nom ramdriv1.device. Il faut ensuite se procurer un éditeur binaire (comme NewZap, éditeur officiel pour les fichiers de personnages des jeux d'aventure), repérer la chaîne de caractères "ramdrive.device" et la remplacer par "ramdriv1.device". D'où l'importance que le nouveau nom soit de la même taille que l'ancien. Voici un exemple de Mountlist qui déclare deux disques RAD :

RAD: Device = ramdrive.device
Unit = 0
Flags = 0
Surfaces = 2
BlocksPerTrack = 11
Reserved = 2
Interleave = 0
LowCyl = 0 ; HighCyl = 9
Buffers = 5
BufMemType = 1 
#

RAD1:
Device = ramdriv1.device
Unit = 0
Flags = 0
Surfaces = 2
BlocksPerTrack = 11
Reserved = 2
Interleave = 0
LowCyl = 0 ; HighCyl = 79
Buffers = 5
BufMemType = 1
#

La méthode est réapplicable à l'infini, à condition de nommer chaque fichier différemment.

Pour finir, voici les deux instructions qui vous permettront de supprimer toute trace du disque RAD :

RemRad
Assign DRIVE RAD: REMOVE

PS : une des particularités du Workbench 2.0 sera de gérer les multiples disques RAD. Le développeur facétieux a donc satisfait la demande générale.


[Retour en haut] / [Retour aux articles]