Création d'une disquette Amiga bootable


La façon dont un Amiga démarre sur une disquette (ou sur un disque dur, puisque c'est quasiment pareil) est assez fascinante !

En effet, le système de l'Amiga fait déjà le distinguo entre une disquette amorçable ("bootable") et une disquette classique, non amorçable/bootable donc. Si vous formatez une disquette, elle sera par principe non amorçable, il faudra ensuite lancer un CLI/Shell et taper nonchalamment, mais avec prestance ^^, "install df0:" (ou df1: si votre disquette est dans le lecteur externe, df2: si dans le 2nd lecteur externe, etc.). Une fois cela fait, votre disquette est amorçable.

Mais avoir une disquette bootable ne suffit pas pour faire démarrer votre jeu... Le secret de l'Amiga se trouve dans sa "startup-sequence", un fichier texte tout simple qui se place dans le tiroir (ou le dossier, ou le répertoire) "S" se trouvant à la racine de la disquette (soit "df0:s/startup-sequence"). Par défaut, ni le tiroir ni le fichier n'existent. Depuis un Shell, vous tapez un petit "makedir df0:S/", ou alors vous profitez du Workbench et vous créez un tiroir depuis les menus de ce dernier. Ensuite, vous utilisez votre éditeur de texte préféré pour créer un fichier texte appelé "Startup-Sequence" que vous sauverez/enregistrerez dans le tiroir S fraîchement créé.


L'architecture et le contenu de la disquette (ici sous MorphOS) : la racine et les deux tiroirs !


Niveau éditeur de texte, vous pouvez utiliser ce bon vieux "Ed", filé avec le 1.3. Il va bien même s'il est un peu austère. Personnellement, sous 1.3, je conseille l'excellent "TurboText" ! Il a l'avantage d'être très puissant, d'avoir une interface aux petits oignons et de gérer le copier-coller, entres autres. Sinon, vous pouvez utiliser "Notepad", mais celui-ci n'est disponible qu'avec AmigaOS 3.9 et 4.x... Mais tout autre éditeur de texte disponible sur Aminet fera l'affaire. Enfin, si vous êtes un utilisateur de MorphOS comme moi, il vous reste l'excellent FlowStudio (que j'ai utilisé pour la capture d'écran présente plus bas ^^).


Voici ce que donne le fichier Startup-Sequence de la disquette lançant "Fenêtre sur ma cour" :

Fenetre:c/bastyplayer >NIL: l Fenetre:lalaire.mod r
Fenetre:c/PPShow Fenetre:intro_image.iff
echo ""
echo "Chargement de FrotzStdIO et du jeu en cours."
echo "Préparez-vous à jouer à 'Fenêtre sur ma cour' !"
echo ""
echo "*e[033mPensez à agrandir le Shell au max avant de jouer !*e[0m"
echo ""
echo "Remerciements à Astrofra pour l'image d'intro et pour la"
echo "musique qui accompagne le jeu ! Merci Fra !"
echo "Et remerciements à Hugo Labrande pour son exemple de code"
echo "Inform qui m'a bien aidé !"
Fenetre:c/wait 5
Fenetre:c/FrotzStdIO -w 60 -h 26 Fenetre:Fenetre.z5
Fenetre:c/bastyplayer >NIL: s



Ledit fichier sous FlowStudio (toujours sous MorphOS)

Toute première remarque sur ce script, il y a une dernière ligne vide que vous ne pouvez pas voir. Pourquoi ? Je ne sais pas trop, mais c'est nécessaire pour que cela fonctionne sur mon A1000 !

Allez, maintenant, commentons un peu cette séquence de démarrage, ou startup-sequence, merci aux deux du fond qui suivent ! ^^

La première ligne dit au système de lancer le logiciel "Bastyplayer", un lecteur de .mod (de fichiers musicaux au format module) qui consomme peu de mémoire et prend aussi peu de place sur la disquette (à récupérer sur Aminet, l'AppStore de l'Amiga ^^). Il est placé ici dans le tiroir C, situé à la racine de la disquette qui s'appelle ici Fenetre:. La commande ">NIL:" quant à elle permet d'envoyer l'affichage de toutes les lignes que pourrait faire le logiciel dans le périphérique NIL:, un périphérique nul, qui n'existe pas (c'est l'équivalent de null sous Unix ou $null sous PowerShell). Grâce à cela, l'affichage initialement prévu par "Bastyplayer" ne viendra pas "polluer" l'affichage effectivement visible par l'utilisateur lors du démarrage du jeu, pratique, surtout que Bastyplayer cause beaucoup. Ensuite, la commande "l" est spécifique à Bastyplayer, elle indique qu'il faut charger le fichier "lalaire.mod" en mémoire, et le "r" permet de faire tourner le module en boucle, en "repeat".

La seconde ligne lance "PPShow" (version 1.0 à récupérer dans une archive de la disquette Fred Fish 334), qui est aussi installé dans le tiroir C, pour afficher l'image intro_image.iff qui a été posée à la racine de la disquette.

Ensuite les lignes avec "echo" permettent d'afficher le texte entre "" dans le Shell (à noter le coup du *e[033m qui permet d'activer une coloration du texte qui suit).

La commande "wait", toujours placée dans le tiroir C, permet d'attendre 5 secondes avant de lancer la suite. Pourquoi ce wait, juste histoire que les gens aient le temps de lire le petit blabla juste avant. Vous pouvez diminuer ce wait, voire le supprimer ;-) D'ailleurs, j'ai pris les commandes "wait", "echo" mais aussi "execute" (qui n'est d'ailleurs pas utilisée ici donc qu'on peut supprimer) sur une disquette compatible Workbench 1.3. L'idée étant que le tout soit ainsi compatible avec l'ensemble des versions d'AmigaOS, pas folle la guêpe ! ;-)

Ensuite on lance Frotz dans sa version "Standard Input Output" avec les paramètres -w et -h qui permettent de régler la largeur et la hauteur de la sortie du texte affichée. Attention toutefois à bien tester ce paramètre puisqu'une hauteur ou une largeur avec un réglage trop élevé vous fera perdre du texte, texte qui ne sera pas du tout affiché, pas cool pour une fiction interactive textuelle, n'est-il pas ? Et enfin on indique le fichier à lancer, ici Fenetre.z5 qui se trouve lui aussi à la racine de la disquette.

Pour terminer, j'ai ajouté une ligne concernant Bastyplayer. Celle-ci arrête la musique une fois que l'on a quitté Frotz. Pratique surtout pour ceux qui jouent sans booter sur la disquette.


Toutefois, si vous regardez le contenu de l'ADF qui a été mis en ligne ici, ce n'est pas exactement ce qui avait été fait. En effet, par facilité et pour gagner du temps, je n'avais pas mis les chemins complets, mais les chemins relatifs... Par exemple, il y a dans la startup-sequence de la version en ligne écrit uniquement "c:Bastyplayer" pour la première ligne... Mais ce n'est pas très malin de faire cela parce que cela signifie que vous allez forcément faire booter les utilisateurs sur disquette... Donc, les utilisateurs qui souhaitent lancer le jeu en ayant démarré sur un disque dur par exemple étaient embêtés... En effet, en indiquant c:Bastyplayer, le système va aller chercher le logiciel non pas sur la disquette mais sur la partition système du disque dur, dans son répertoire C:... et ne trouvera sans doute pas Bastyplayer si l'utilisateur ne l'a pas installé auparavant dans le répertoire C de son système... et trouvera encore moins le module à jouer...

Bref, c'est BEAUCOUP mieux en mettant le chemin complet, parole de scout ! En effet, en mettant les chemins complets, plus de souci. On peut même monter virtuellement le fichier ADF et lancer le jeu en exécutant la startup-sequence dans un CLI/Shell sans avoir à redémarrer son Amiga.

On pourrait même envisager, pour encore simplifier le lancement aux utilisateurs, de créer un petit script avec icone qui se trouverait à la racine de la disquette. Et d'un simple double-clique, la startup-sequence de la disquette s'exécuterait et lancerait le jeu ! Peut-être l'occasion d'une autre devlog et d'une mise à jour du fichier ADF de Fenêtre sur ma cour ! ;-)

Get Fenêtre sur ma cour

Leave a comment

Log in with itch.io to leave a comment.