Par format de programme, j'entend au même sens que PpHd:
L'organisation précise, octet par octet, où se trouve par exemple le commentaire du programme, les
bits pour indiquer quelle calculatrice on vise, taille du BSS etc...
Quelqu'un connaît-il ou peut-il m'indiquer où se trouvent des docs sur:
- Le format de programme NoStub
- Le format utilisé par les programmes C
- Le format des librairies dynamiques pour kernel (fichiers avec signature 68kL)
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
Uther Le 08/10/2003 à 17:36 - le format utilisé par le prog et lib kernel c'est dans la documentation de PreOS
- Pour le C ca dépends si on est en kernel ou _nostub. Il faut ajouter le code venant de tipatch.lib
- Pour le nostub, je sais pas
Pour la lib kernel c'est pas vraiment dans la doc:
Le "progformat.txt" dit tout sur le format des programmes, mais ne dit
que auelques trucs sur les librairies (endroit du 68kL)
Sinon t'a "sdk.txt" qui dit bien comment en faire avec "xdef _library" mais ca dit pas
comment le fichier est constitué au final, où se trouvent les octets de version de la lib
etc...
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
PpHd Le 08/10/2003 à 17:50 Il n'y a aucune difference entre un programme et une librarie pour les fichiers kernels: un programme possede juste une entre _main non nulle. C'est tout. Le reste est identique (un programme peut aussi exporter des fonctions).
!kick GoldenCrystal
!slap GoldenCrystal
• Billy Charvet slaps GoldenCrystal around a bit with a large trout !
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
PpHd, comment marche une relocation ?
Notamment, la table de relocation pour les librairies, dans l'en-tête d'un prog kernel ???
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
PpHd Le 08/10/2003 à 18:09 Comme pour une application kernel: c'est une liste d'offset qu'il faudra reloger.
PpHd Le 08/10/2003 à 18:15
Dans le programme tu as un :
Offset: jsr 0.l
Le kernel va transformer cela en:
Offset: jsr 0x41256
ou 0x41256 est la bonne addresse.
Pour ce faire, il faut lui donner la liste des Offset-Origin ou il doit ajouter la valeur qu'il faut ( le debut du programme, l'adresse d'une fonction d'une lib, etc).
Mais c'est suceptible de changer
Dans le cas du commentaire, le kernel prend l'offset vers _comment et l'ajoute à l'adresse du
début du fichier, donc ?
Et de la même manière, la table de relocation contient des offsets vers les fonctions utilisées
à partir du début du fichier de ces librairies ?
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
Tu devrais peut-être commencer par maîtriser l'assembleur, avant d'essayer de comprendre ça, non ? ça te paraîtrait beaucoup plus simple après.
en _nostub je ne crois pas que ça ait été dit, mais le programme commence dès le premier octet, et il y a une table de relogements à la fin du du fichier (regarde EX_Patch dans la doc, il y aura peut-être des infos)

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
PpHd Le 09/10/2003 à 17:20 Un offset.
Tu prends un offset, puis tu ajoutes l'adresse de l'origine du prog.
Puis a cette adresse, tu ajoutes l'adresse qu'il faut (le debut du programme, la romcall, la librarie, etc-
Zeph Le 09/10/2003 à 19:09 Pourquoi "!kick Pollux" ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Parce qu'il a dit que snow-tiger ne méritait pas qu'il se jette des fleurs

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »