Obligement - L'Amiga au maximum

Mardi 23 mai 2017 - 16:36  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · 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 in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : C - passer MSH de la version 1.5 à la 1.6
(Article écrit par Squonk et extrait d'Amiga News - février 1991)


MessyFileSystem, alias MSH, est un programme qui permet le reconnaître des disquettes PC. Il se trouve sur la disquette Fred Fish 327.

Comment fonctionne donc ce programme ?

Eh bien, comme devraient l'être tous les programmes de transfert, il est pratiquement transparent pour l'utilisateur. Oui, oui, vous insérez une disquette MS-DOS dans un lecteur de l'Amiga et c'est tout. Bon, il faut quand même taper dans un Shell "mount MSH:" avant et préciser que vous écrivez sur le volume "MSH:".

Mais vous pouvez continuer à utiliser la commande "copy" ou "dir" d'AmigaOS, ou bien votre éditeur favoris pour lire ou écrire un fichier sur cette disquette. Impossible ! Mais si, toujours grâce a l'Amiga. En fait, comme vous l'avez sûrement déjà remarqué, l'Amiga est une machine entièrement configurable, l'imprimante, les disques durs, etc. tout est paramétrable. Vous êtes-vous posés déjà la question de savoir comment faisait votre bécane pour exécuter une commande du type "copy toto df0:" ?

Le CLI (c'est aussi valable pour le Workbench) commence par analyser votre commande, qui est reconnue à l'aide de mots-clés ou par rapport à la position de l'icône sur l'écran, commande qui est traduite en un message DOS indépendant du périphérique sur lequel vous travaillez. Il peut s'agir à ce niveau d'une fenêtre CON:, de l'imprimante PRT:, d'un modem sur SER:, d'un disque dur DH0:...

Le message DOS est transmis à une tâche appelée "file system" (système de fichiers) qui elle dépend du type de périphérique. Sur des supports de stockage de masse comme un disque dur ou une disquette, c'est cette couche qui est chargée de gérer l'organisation du support en fichiers, répertoires, etc.

Si on continue à explorer le fonctionnement, on s'aperçoit que la commande envoyée plus haut est transformée en une série de messages d'entrée-sortie (IORequests) qui sont des ordres de commandes à exécuter. Ces requêtes d'assez bas niveau ("écrire le tampon fourni de l'adresse 300000 à 310000 du périphérique") sont alors prises en compte par un gestionnaire de périphérique (pilote) qui va enfin aller "titiller" les octets sur le disque.

En fait, il peut encore y avoir une autre couche dite de "ressource" qui est encore une autre tâche chargée de régler les contentieux d'accès à des ressources matérielles unique (le CIA A par exemple). En résumé il y a :
  • AmigaOS (CLI ou Workbench) qui analyse la commande.
  • Le système de fichiers qui gère l'organisation en fichiers.
  • La device qui gère un groupe de périphériques donné.
  • La "resource" qui empêche l'accès simultané au même registre matériel.
Ce qui est remarquable, c'est que le passage d'une couche à l'autre est réalisé par des messages et rend donc les divers éléments complètement indépendants l'un de l'autre (pas d'appel direct comme sur les bons vieux PC). Ensuite, on s'aperçoit que le choix des divers éléments (système de fichiers et device) est fixé par l'utilisateur à l'aide de la fameuse liste de montage ("Mountlist") !

Après cette explication, je peux dire que MSH est en fait un ensemble de programmes comprenant :
  • Un système de fichiers (MessyFileSystem) qui émule MS-DOS.
  • Un device (messydisk.device) qui écrit des secteurs au format IBM.
  • Divers utilitaires qui facilitent la vie (commande de formatage "messyfmt", d'inhibition des erreurs de contrôle "ignore", d'assassinat de MSH "die").
  • D'une entrée pour liste de montage à installer chez vous.
Comme précisé ci-dessus, il est possible de mélanger les couches purement Amiga et les divers programmes MSH pour obtenir un système de fichier Amiga avec formatage MS-DOS, une gestion MS-DOS avec un formatage Amiga, voire une gestion MS-DOS avec un formatage MS-DOS...

Pour installer MSH, il faut :
  • Copier "MessyFileSystem" dans votre répertoire "L".
  • Copier "messydisk.device" dans votre répertoire "Devs".
  • Copier les utilitaires "messyfmt", "ignore" et "die" dans votre répertoire "C".
  • Recopier l'entrée "MSH:" (ou "MSI", ou autre) dans votre liste de montage "Mountlist".
  • Insérer "mount MSH:" dans votre "startup-sequence" si vous désirez avoir MSH: en permanence.
Version 1.6

Si vous disposez des fichiers exécutables, tout va bien, Si comme moi, vous disposez de deux versions, la 1.5 qui est complète avec les sources, les docs et les exécutables, et la version 1.6 où là je ne dispose que d'un fichier source qui indique les modifications à effectuer dans la version 1.5 pour obtenir la version 1.6 (format "RCS"), y'a du boulot !

Premier problème, la génération des sources 1.6. Comme ce n'est pas franchement rigolo de faire les correctifs ("patches" en anglais) à la main surtout quand on a un poil dedans, j'ai écrit un bout de code qui fait le maximum. Il suffit de l'appeler "patch" et de le nourrir avec :

patch <répertoire version 1.5> <fichier de patch> <répertoire 1.6>

Deuxième problème, la compilation. Un fichier "makefile" pour Aztec 3.6 est fourni. Question dans l'assistance : c'est quoi un "mecfile" ? Réponse de l'intervenant : il s'agit d'un fichier ASCII décrivant la manière de mettre à jour un fichier qui dépend d'autre fichiers. Typiquement, un programme, constitué de modules objets liés ensemble, provenant eux-mêmes de fichiers source après compilation, les sources pouvant eux aussi dépendre de fichiers inclus.

La méthode consiste à décrire les dépendances en donnant pour chaque fichier les fichiers qui, s'ils sont modifiés, doivent entraîner la regénération de ce fichier. Le procédé de reconstruction est décrit par la ligne suivante qui commence par un <tab>. Ajouter de l'accastillage comme les macros-variables. Salez. Poivrez. Servez chaud.

Attention toutefois au ficher "makefile" car il y a deux macro-variables qui sont utilisées sans être définies (DB et WACK). Il faut donc placer au début du "makefile", pour les déclarer au préalable :

DB =<return>
WACK =<return>

Le listing

Voilà donc un programme utile, d'autant plus que maintenant, même les Macintosh arrivent à lire les disquettes MS-DOS.

C
C
C
C


[Retour en haut] / [Retour aux articles]