Obligement - L'Amiga au maximum

Samedi 31 mai 2025 - 15:42  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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.
  • Le périphérique logique qui gère un groupe de périphériques donné.
  • La ressource ("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 périphérique logique) 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 périphérique logique (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 fichiers 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]