Introduction
Ce format, du nom de PRG (pour programme), et pouvant avoir comme extension de fichiers .PRG, .APP, .OVL, .TOS, .ACC, .TTP, est un exécutable destiné aux ordinateurs Atari ST du GEMDOS pour le système d'exploitation TOS.
Étant donné que le système d'exploitation d'Atari ST utilise un système de fichiers similaire à la FAT16, et que celui-ci est limité dans ses attributs de fichiers, ils utilisent différentes extensions pour catégoriser les formats d'exécutables. Voici les extensions reconnus par le système d'exploitation :
Extension | Description |
---|---|
.ACC | Cette extension de fichiers permet d'indiquer un accessoire de bureau. |
.APP | Cette extension de fichiers permet d'indiquer une application. |
.OVL | Cette extension de fichiers permet d'indiquer un exécutable de recouvrement. |
.PRG | Cette extension de fichiers permet d'indiquer un programme exécutable. |
.TOS | Cette extension de fichiers permet d'indiquer un programme TOS. |
.TTP | Cette extension de fichiers permet d'indiquer un programme TOS prenant des paramètres. |
Un fichier exécutable est constitué d'un entête suivi par des images pour les segments de texte et de données, d'une table d'entrée de symbole contenant zéro ou plusieurs entrées, et zéro ou plusieurs enregistrements d'informations complémentaires.
Les parties d'un fichier exécutables
Structure d'entête du fichier |
Segment texte |
Segment de données |
Symboles |
Informations complémentaires |
Structure d'entête du fichier
L'entête du fichier contient un nombre magique (une signature indiquant un fichier exécutable) et plusieurs double mots contenant les informations de taille. Voici la structure d'entête :
Déplacement | Taille | Description |
---|---|---|
00h | 2 octets | Ce champ permet d'indiquer la signature du fichier (nombre magique) : 601Ah |
02h | 4 octets (double mots) | Ce champ permet d'indiquer la taille du segment texte |
06h | 4 octets (double mots) | Ce champ permet d'indiquer la taille du segment de données |
0Ah | 4 octets (double mots) | Ce champ permet d'indiquer la taille du segment BSS |
0Eh | 4 octets (double mots) | Ce champ permet d'indiquer la taille de la table de symbole. |
12h | 4 octets (double mots) | Ce champ est réservé. |
16h | 4 octets (double mots) | Ce champ est réservé. |
1Ah | 4 octets (double mots) | Ce champ est réservé. |
1Eh | variable | Ce champ permet d'indiquer le début segment texte. |
Structure du corps du fichier
Les images de segment de texte et de données suivent immédiatement l'entête. La table de symbole, si elle existe, suivi le segment de données. Le GEMDOS contient un double mot des informations complémentaires dans les segments de texte et de données par addition de la base du segment texte à la valeur déjà présente dans le double mot. La liste des informations complémentaires spécifies les doubles mots nécessaires à la réallocation. Le premier item dans la liste des informations complémentaires spécifie le déplacement de la première informations complémentaires; la double mot contient la valeur 0L (NULL) si aucune informations complémentaires n'est présente. Des simples octets suivent le double mot spécifié pour le déplacement des autres items d'informations complémentaires. Le double mot doit commencer dans les limites du mot ou le système plantera.
Valeur de l'octet de réallocation
Valeur | Description |
---|---|
0 | Cette valeur permet d'indiquer la fin des informations de réallocation. |
1 | Cette valeur permet d'indiquer qu'il faut avancer de 254 octets et demande une prochaine valeur d'octet |
2, 4,..., 254 | Ces valeurs permettent d'indiquer un double mot d'informations complémentaire vers le pointeur de location. |
3, 5,..., 255 | Ces valeurs, soit des nombres impaires, sont réservés pour un usage futur. |