BootBlock Manager v. 1.2 copyright (c) 1991-1993 par Christophe LARATTE BootBlock Manager ou BBM est un utilitaire de gestion de boot blocs. Son principal but est de permettre l'accès à tout un chacun à une bibliothèque de BBs (boot blocs). Vous pouvez y ajouter, enlever, modifier, trier ou comparer les BBs. Pour les programmeurs et tous ceux qui s'y connaissent un peu, BBM inclut la possibilité de transformer un programme en BB ou d'installer un programme sur une disquette et de le charger à partir d'un BB (lors du boot). Enfin j'ai inclus quelques préférences qui permettent de configurer BBM selon vos besoins (du moins je l'espère). Ce programme n'est pas domaine public, il est freeware. Vous pouvez le copier librement, mais vous n'avez pas le droit de le modifier. De plus il est interdit de faire du profit avec BBM. Par contre, les associations de DP peuvent l'inclure librement sur leurs disquettes à condition que le prix de la disquette reste raisonnable. Close spéciale pour Free Distribution Software qui est autorisé à inclure BBM dans le Petit Amiga Illustré. Je décline toute responsabilité en cas de détérioration de vos disquettes originales ou en cas de propagation de virus à cause des bibliothèques de BBM. Vous utilisez BBM à vos risques et périls. Alors faites attention, surtout s'il provient de distributeurs douteux. Si vous voulez de nouvelles options ou possibilités, faites le moi savoir, je serai très content de pouvoir vous aider. BBM et la compatibilité : ~~~~~~~~~~~~~~~~~~~~~~~~~ - Il peut être lancé à partir du Workbench - Il marche sur les A3000 - Il marche avec le Kickstart 2.0 - Il marche sur les écrans NTSC (je pense), mais sans HelpMode Attention, BBM a besoin de la REQ.LIBRARY version 1 ou plus. BBM et les paramètres : ~~~~~~~~~~~~~~~~~~~~~~~ A partir du CLI, vous pouvez ajouter des noms de bibliothèques à charger, comme ceci : BBM [nom_de_bibliothèque] [nom2] ... Le nom_de_bibliothèque correspond aux chemin d'accès complet (au format de l'AmigaDOS). Exemple : dh0:BBM df0:utilities.BBMlib df1:private.BBMlib A partir du Workbench, vous pouvez aussi charger plusieurs bibliothèques lors du lancement de BBM en sélectionnant les icones correspondantes puis en double cliquant sur l'icone de BBM. Vous pouvez aussi lancer BBM en double cliquant sur une bibliothèque rattachée à BBM (Jetez un coup d'oeil aux icones du répertoire de BBM). Passons maintenant aux options de BBM. B.B.M./About : ~~~~~~~~~~~~~~ Rien de très intéressant. B.B.M./Quit : ~~~~~~~~~~~~~ Rien de très intéressant non plus. Load/Bootblock/DFx : ~~~~~~~~~~~~~~~~~~~~ Charge les deux premiers blocs d'une disquette et calcule la checksum du bootbloc si vous avez sélectionné la préférence "Auto Calcul checksum". Load/File/Executable : ~~~~~~~~~~~~~~~~~~~~~~ Charge un programme qui doit être relogeable (en position-independant) et avoir un hunk. BBM calcule la checksum du bootbloc si vous avez sélectionné la préférence "Auto Calculate checksum". Cette option vous permet, après avoir compilé un programme, de l'installer directement sur le BB d'une disquette. Avant, je devais passer par plusieurs programmes pour enlever le header de l'exécutable puis calculer la checksum et enfin l'installer sur ma disquette. Si vous sélectionnez la préférence "Offset in executable", vous devez ajouter trois mots longs au début du source de votre programme avant de le compiler. Cette fonction est très utile si vous voulez utiliser des adresses relatives au début du programme. Et comme vous le savez, le début du programme d'un bootbloc commence au début du bootbloc et non au début du programme. C'est la raison pour laquelle il y a trois mots longs de plus : un pour 'DOS',0, un autre pour la checksum et un dernier pour le numéro du rootblock $00000370. Je sais, je ne suis pas très clair, alors jetez un coup d'oeil sur le fichier BootBloc.doc. J'ai aussi inclus un fichier appelé SimulBB.s qui permet de "simuler" les conditions du boot et ainsi de tracer votre futur Boot Bloc. Load/File/Raw code : ~~~~~~~~~~~~~~~~~~~~ Charge un fichier contenant seulement la partie code d'un BB (sans le header). La préférence "Auto calculate checksum" ne marche pas avec cette option. Car je pense que si vous avez enlevé le header, vous avez aussi enlevé l'offset. Load/File/Complete BB : ~~~~~~~~~~~~~~~~~~~~~~~ Permet de charger un véritable fichier bootbloc, avec 'DOS',0 etc. La préférence "Auto calculate checksum" marche avec cette option. Load/BBM Library : ~~~~~~~~~~~~~~~~~~ Charge une bibliothèque BBM qui s'ajoute aux bootblocs en mémoire. La préférence "Auto calculate checksum" ne marche pas avec cette option. Le requester (de la req.library) n'affiche que les fichiers ayant l'extension ".BBMlib". Si vous voulez tous les autres fichiers, il faut modifier le contenu du gadget SHOW du requester. BBM fait automatiquement la différence entre un fichier crunché et un fichier non crunché. (voir l'option Save/BBM library) Si la préférence "Erase current library" est active, les BBs en mémoires sont effacés avant le chargement d'une nouvelle série de BBs. Save/xxxx : ~~~~~~~~~~~ Vous prenez l'option de chargement correspondant à xxxx, et vous remplacez le mot 'charge' par 'sauve'. Si vous êtes malin, vous constaterez que j'ai oublié l'option "Save/File/Executable". Alors je vous répondrai que je ne vois pas la réelle utilité de cette option et que je suis trop fainéant pour coder une option que je n'utiliserai jamais ! ;-) Save/BBM library : ~~~~~~~~~~~~~~~~~~ Cette option sauve tous les BBs en mémoire dans un seul fichier, appelé bibliothèque. Si vous avez sélectionné l'option "Crunch libraries" (ce que je vous conseille), BBM sauve la bibliothèque sous forme "crunchée" : il supprime tous les zéros (méthode de suppression des blancs). Vous obtenez un gain d'environ 50 % par rapport à la version non crunchée ! Mais ne croyez pas que ma méthode tienne du miracle, il se trouve simplement que dans la version non crunchée, BBM sauve les attributs (NAME, CREATOR, OBJECT) de chaque BB en entier, ce qui correspond à trois fois 256 octets. Or la plupart du temps, seulement une vingtaine d'octets sont utilisés... Options/Calculate checksum : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Effectue le calcul de la checksum du BB courant et ajoute 'DOS',0. Pensez à refaire le calcul de la checksum avant d'écrire un BB sur une disquette, si vous en avez modifié le contenu. Options/Compare BB xxx : ~~~~~~~~~~~~~~~~~~~~~~~~ Sélectionne le BB courant comme BB source. Celui-ci sera utilisé par l'option de comparaison (voir les deux options suivantes). Options/... with current BB : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compare le BB courant avec le BB source que vous avez sélectionné dans l'option précédente. Cette option affiche en blanc les octets identiques et en foncé les autre octets du BB courant. Options/...with all others : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compare le BB source avec tous les BBs et affiche les BBs qui ont plus de x octets identiques (x est déterminé avec la préférence Identical Bytes : voir Preferences/Identical bytes) avec le source. Les octets foncés sont ceux du BB source. Options/Install executable/DFx : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cette option est beaucoup plus longue que les autres en ce qui concerne la taille dans le programme, et le temps qu'elle met à s'exécuter. Par contre elle très facile d'utilisation. Elle permet d'installer un programme sur une disquette. Ce programme peut être aussi grand qu'il veut, pourvu qu'il y ait assez de place sur la disquette. Il peut aussi être divisé en plusieurs hunks. Une restriction toute fois : les hunks de type Reloc16 et Reloc8 ne sont pas acceptés. Mais ne vous inquiétez pas trop, je n'en ai jamais vu. Le programme est écris dans les blocs libres de la disquette. Un BB est créé pour l'occasion : il permet le chargement du programme lors du boot, et son exécution. NOTE IMPORTANTE : pour les possesseurs d'un seul lecteur, vous devez d'abord copier le programme à installer en mémoire. Les blocs libres utilisés pour le programme deviennent occupés. Ils sont protégés par un fichier appelé PSEUDOFILE.BBM, créé (lui aussi) pour l'occasion. Ce fichier est protégé contre les effacements intempestifs par le bit d'attribut du fichier DELETE qui n'est pas positionné. Par conséquent, si vous voulez effacer PSEUDOFILE.BBM, vous devez d'abord changer le bit d'attribut. La place réservée redeviendra libre. Mais si vous n'écrivez rien sur la disquette, le programme existera quand même. NOTE IMPORTANTE : vous ne pouvez pas déplacer PSEUDOFILE.BBM d'une disquette vers une autre : c'est un faux fichier. Par contre, vous pouvez le renommer ou ajouter un commentaire. A noter que certains utilitaires de gestion de fichiers créent des read/write errors lors de manipulations avec PSEUDOFILE.BBM : ce n'est pas grave. Cette option sert surtout pour installer des démos (voir des jeux). Car les autres programmes font appel à des paramètres de l'Amiga qui ne sont pas initialisés lors du boot. Une seule méthode pour savoir si un programme marche : essayer. Attention, les programmes crunchés avec PowerPacker ne fonctionnent pas une fois installés. Par contre ceux qui sont crunchés avec IMPLODER ou avec d'autres crunchers du type ByteKiller ou DefjamPacker marchent très bien. Options/Erase all BBs : ~~~~~~~~~~~~~~~~~~~~~~~ Sniff sniff ! Sort out/xxxx : ~~~~~~~~~~~~~~~ Trie les BBs par NAME, CREATOR ou OBJECT. Vous pouvez combiner les tris : si vous triez par NAME et après par CREATOR, les BBs seront rangés par CREATOR, et s'il y a des CREATORs identiques leurs BBs seront aussi rangés par NAME. Preferences/Auto calculate checksum : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Active l'appel à l'option "Calculate checksum" quand vous chargez un BB, un fichier éxécutable, un fichier avec le code seul, ou un fichier BB. Preferences/Auto compare all BBs : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Active l'appel à l'option "... whith all others" quand vous chargez un BB, un fichier éxécutable, un fichier avec le code seul, ou un fichier BB. Le BB source est le nouveau BB. Preferences/Confirme to ERASE : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Affiche un requester quand vous sélectionnez l'option ERASE. Preferences/Confirme to Quit : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Affiche un requester quand vous sélectionnez l'option Quit. Preferences/Crunch libraries : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Active le compactage de la bibliothèque de BBs lors de leur sauvegarde. Preferences/Edit enabled : ~~~~~~~~~~~~~~~~~~~~~~~~~~ Avec cette option vous pouvez écrire sur un BB en hexadécimal ou en ASCII. Preferences/Erase current library : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Appelle la fonction "Erase all BBs" avant le chargement d'une nouvelle bibliothèque. Cette préférence permet de ne pas mélanger plusieurs bibliothèques. Preferences/Offset in executable : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Voir la description de l'option "Load/File/Executable". Preferences/Colors : ~~~~~~~~~~~~~~~~~~~~ Affiche un requester (de la req.library) qui permet de modifier les couleurs de BBM. Preferences/Identical bytes : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous permet de déterminer le nombre minimum d'octets identiques nécessaires pour afficher les BBs dans l'option de comparaison. Preferences/Help Mode ou French Mode : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Une petite description (en français ou en anglais) de chaque commande apparait dans la boite du bas. Indisponible sur les écrans NTSC. Preferences/Decimal Writing ou Hexadecimal Writing : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Permet de choisir entre l'affichage en décimal ou en hexadécimal des nombres concernant la longueur des BBs. Affecte aussi le nombre à droite de l'écran qui indique sur quel BB vous êtes. Preferences/Load Prefs : ~~~~~~~~~~~~~~~~~~~~~~~~ Charge le fichier préférences. Le fichier préférences s'appelle BBM.prefs et est chargé depuis le répertoire S:. Preferences/Save Prefs : ~~~~~~~~~~~~~~~~~~~~~~~~ Sauve le fichier préférences. Preferences/Restore Prefs : ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Restaure les préférences par défaut. Vous avez aussi quelques gadgets qui vous permettent de choisir entre l'affichage ASCII ou HEXadécimal. Quand vous sélectionnez l'affichage HEX vous pouvez choisir entre quatre parties du BB courant (vous changez avec les flèches gauche et droite). Pour changer de BB vous avez les flèches bas et haut et les petites flèches pour aller de dix en dix. Vous pouvez aussi faire apparaitre la liste de BBs en mémoire, avec le gadget MENU. Vous pouvez ainsi cliquer directement sur le BB que vous voulez afficher. Vous pouvez déplacer le curseur avec les touches haut, bas, suivant et précédent sur votre clavier. Si vous combinez la touche shift avec les flèches, vous allez à la première ou à la dernière ligne ou colonne. Il n'y a pas de bug connu, mais si vous en détectez un ou si vous avez une idée géniale, écrivez-moi à : Christophe LARATTE 6 allée Marcel Pagnol 87410 Le Palais sur Vienne FRANCE Je tiens à remercier : - Amiga News-Tech pour ses articles (au-revoir...) - Commodore pour l'Amiga - David K. Buck pour DKB Ray Trace - Fred Fish pour sa collection - HiSoft pour Devpac - Julien Torres pour ses merveilleux conseils, pour avoir bien voulu tester B.B.M. (il a trouvé 3 bugs...) et pour avoir corrigé les fautes d'orthographe. - Les auteurs de l'arp.library (je ne les cite pas de peur d'en oublier un) - Les auteurs de la req.library : Colin Fox & Bruce Dawson - Matt Dillon pour son oeuvre - Nico François pour ses programmes géniaux - Patrick Quaid pour PCQ - Serge Hammouche pour ses remarquables services et ses renseignements - Steve Tibbett pour VirusX - Xavier Leclerq pour ses articles dans Amiga News et pour le PAI Bon, il est l'heure de se dire au revoir, alors au revoir. Christophe LARATTE mars 1992 révisé en février 1993