This is an old revision of the document!


Afin de comprendre et modifier plus en profondeur le bootcode du lapin, j'ai developpé un désassembleur, et un assembleur. (Basé sur le travail de nombreuses personnes, dont Sache).

Ces deux utilitaires fonctionnent en ligne de commande, et sont disponibles sous forme de source à compiler.

Assembleur (nabAsm) https://github.com/Pixel166/nabAsm

Désassembleur (nabDasm) https://github.com/Pixel166/nabDasm

Leur utilisation est très simple :

./nabDasm <fichier bootcode> <fichier source à créer>
./nabAsm <fichier source> <fichier bootcode à créer>

Lors de la modification des sources, il faut veiller à garder la même structure que celle créée par le désassembleur. De plus, il ne s'agit que d'un assembleur, et pas d'un compilateur. Donc si vous devez insérer des nouvelles variables globales, il faut soit décaller toutes les références aux variables suivantes dans le code, soit insérer les nouvelles variables à la fin de la liste.

Je n'ai pas encore testé, mais étant donné que certaines variables globales sont identiques (notamment des entiers ou des “false”), il est peut-être possible d'utiliser dans le code toujours la même variable globale, afin de réutiliser toutes les autres pour une autre utilisation.

Les fichiers bootcode créés peuvent être utilisés avec openJabNab, en utilisant les options permettant de fournir un fichier bootcode:

  • StandAloneUseLocalBootcode

pour utiliser un fichier local en mode standalone, mettre cette valeur à true

  • ProxyUseLocalBootcode

pour utiliser un fichier local en mode proxy, mettre cette valeur à true

  • Bootcode

Chemin vers le fichier bootcode à utiliser.

Compilation des utilitaires

Il faut avoir un environnement de développement avec Qt. ensuite, lancer la commande

qmake -r

puis lancer la compilation

make

Et voilà !