Les fichiers Paragraphe
Tout fichier Paragraphe est de suffixe « PAR », de type $0A et de flag
$00. Ces fichiers sont traités par blocs de 64 octets. Avant chaque bloc de 64 octets,
la nature du bloc est définie par un code dun octet. Ces blocs,
consécutivement, sont constitués comme suit:
Le bloc info
Le bloc info est introduit par le code $0D. Sa structure est la suivante:
Offsets 0-4 Marquage de Paragraphe (invariable)
$40 Taille dun bloc mémoire
$40 Valeur de loctet précédent
$02 Position courante de loctet dans le bloc
$02 Valeur de loctet précédent
$04 Position courante de loctet dans le bloc
Offsets 5-6 Numéro du format pour tête de page (de 0 à 4095 - initialisé à 3)
Offsets 7-8 Numéro du format pour pied de page (de 0 à 4095 - initialisé à 3)
Offsets 9-10 Numérotation de la première page pour impression (initialisé à 1)
Offset 11 Largeur caractère de la page (de 7 à 140 - initialisé à 76)
Offset 12 Hauteur caractère de la page (de 3 à 255 - initialisé à 60)
Offsets 13-14 Numéro du format pour texte à éditer (de 0 à 4095 - initialisé à 0)
Offset 15 Taille caractère de marge basse (initialisée à 0)
Offset 16 Taille caractère de marge haute (initialisée à 0)
Offset 17 Caractéristiques d'impression (initialisé à 0)
b6 1 = Double interligne sélectionné
b5 1 = Condensé sélectionné
b4 1 = Exposant sélectionné
b3 1 = Elite sélectionné
b2 0 = PR90-582 (ou driver logiciel)
1 = PR90-600
b7, b1 et b0 sont à 0. b3, b4 et b5 ne sont pas sélectionnables simultanément. La
somme « taille de marge haute + hauteur de la page + taille de marge
basse » représente la hauteur réelle de la page. Elle doit être inférieure
à 256.
Le bloc info dun document vide doit être impérativement constitué par les valeurs
dinitialisation.
Il n'existe pas d'extension du bloc info. Le bloc info est complété par des 0.
Le texte à éditer
Le texte à éditer est introduit par un bloc de code $0F. Chaque paragraphe, y
compris tout paragraphe vide, commence par le code sur 16 bits du format. La
formule pour calculer ce code par rapport au numéro de format est la suivante:
Code de format = $A0C0+((numéro*4) & $3F00)+(numéro & $003F))
Comme chaque plage de format est constituée de 8 octets, le numéro du format doit
être multiplié par 8 pour obtenir l'offset dans la table des formats.
La présence de ce code en début de ligne implique un retour de ligne. Il
napparaît généralement pas avant la fin d'un paragraphe. Les mots seront
séparés par un seul espace (code $05), Paragraphe se chargeant à l'affichage et
à limpression de calibrer les paragraphes automatiquement en fonction du
format.
Le texte proprement dit est ponctuellement altéré s'il y a lieu. Les codes d'altérations sont les suivants:
Souligné $80 (annulé par $81)
Italique $82 (annulé par $83)
Gras $84 (annulé par $85)
Double largeur $86 (annulé par $87)
Caractère utilisateur $88 (annulé par $89)
Les codes des caractères affichables particuliers sont les suivants:
$09 £ $0A ß $0B ° $0C È $0D É $0E ë $0F é $10 è
$11 ê $12 ä $13 à $14 â $15 Ä $16 ô $17 ö $18 Ö
$19 ü $1A Ü $1B û $1C ù $1D î $1E ï $1F ç
$05 espace conventionnel de Paragraphe.
$06 tabulation (Format/Voir caractères spéciaux)
$20 marquage (Format/Voir caractères spéciaux)
La partie texte se compose des caractères $05 et $21 à $7F, quils soient standard
ou utilisateur.
Les codes caractères restants sont réservés à lusage interne de Paragraphe et
napparaissent pas dans un fichier.
Un texte à éditer inexistant doit être impérativement constitué du code $A0C0. Il
est recommandé d'initialiser aussi sous réserve le numéro du format de départ
du texte à éditer aux offsets 13-14 du bloc info.
Si la longueur du texte dépasse la taille dun bloc, une extension de code $01
(plus rarement $05) et dun bloc de 64 octets est créé, autant de fois qu'il
faudra pour sauvegarder l'intégralité du texte. Le texte est conclu par un 0.
Le dernier bloc de texte est complété par des 0.
Le texte de tête de page Le texte de pied de page
Les tête et pied de page sont introduits aussi par un bloc de code $0F. Ils sont normalisés comme le texte à éditer
avec les exceptions suivantes:
- Le code du format de départ des tête et pied de page napparaît pas en début de première ligne de
texte mais son numéro est contenu aux offsets respectifs 5-6 et 7-8 du bloc info.
- Le premier caractère rencontré est le caractère $02 défini comme un caractère de début de texte.
- Le dernier caractère rencontré est le caractère $01 défini comme un caractère de clôture de texte.
- Toute suite de caractère "$" calibre et positionne la numérotation automatique des feuilles à l'impression du texte.
Un texte de tête ou de pied de page inexistant doit être impérativement constitué
des codes $02 et $01.
Si la longueur du texte dépasse la taille dun bloc, une extension de code $01
(plus rarement $05) et dun bloc de 64
octets est créée, autant de fois qu'il faudra pour sauvegarder l'intégralité du
texte. Le dernier bloc de texte de tête ou pied de page est complété par des 0.
Les formats
Un bloc de format est introduit par le code $06. Il est constitué de 8 octets
donnant des informations sur l'affichage d'un texte, d'un graphique ou d'un
saut de page. La structure d'un format est la suivante:
----- Dans le cas dun format de texte :
Offset 0 Type de cadrage
$00 Centrer
$01 Cadrer à gauche
$02 Cadrer à droite
$03 Justifier
$04 Ne pas traiter
Offset 1 $00
Offset 2 Taille du retrait de début de paragraphe
Offset 3 Largeur de marge de gauche
Offset 4 Largeur de marge de droite
Offset 5 Numéro de règle liée au format(de 0 à 127) + $80
----- Dans le cas dun format de saut de page :
Offset 0 $00
Offset 1 $00
Offset 2 $00
Offsets 3-4 Numéro du format lié au saut de page
Offset 5 $01
----- Dans le cas dun format de graphique :
Offsets 0-1 Numéro du graphique
Offset 2 Position verticale du graphique
Offset 3 $00
Offset 4 $00
Offset 5 Hauteur caractère réelle du graphique (de 1 à 127)
----- Dans tous les cas :
Offset 6 Toujours $00 si format inextirpable sinon image de loffset 7
Offset 7 Validité du format
$00 = format usité
$FF = format inusité
Si loffset 5 va de $80 à $FF, il sagit dun format de texte. Dans les autres
cas, et si les offsets 0 et 1 sont à $0000, il sagit dun format de saut de
page sinon il sagit dun format de graphique. Pour un texte, la valeur de
l'offset 5 doit être réduite de $80 et multipliée par 20 pour obtenir l'offset
dans la table des règles. Un format de saut de page est toujours lié avec son
propre format de texte ou de graphique, sans cela la ligne comporterait un code
superflu interprétable comme un retour de ligne.
Les quatre premiers formats répertoriés sont inextirpables et constitués comme
suit:
03 00 05 00 00 80 00 00 Format n°0 Justifier, retrait à 5, règle 0
04 00 00 00 00 80 00 FF Format n°1 (inactif) Cadrer à gauche, règle 0
00 00 00 00 00 01 00 FF Format n°2 (inactif) Saut de page
00 00 00 00 00 80 00 00 Format n°3 Centrer, règle 0
Attention : les mêmes formats peuvent être utilisés aussi pour les tête et pied de page.
Il ne peut y avoir deux formats de même effet dans la liste.
Si la longueur de la table des formats dépasse la taille dun bloc, une extension
de code $06 et dun bloc de 64 octets est créée, autant de fois qu'il faudra pour sauvegarder l'intégralité de la
table des formats. Le dernier bloc des
formats est complété avec la valeur $FF.
Les règles de tabulations
La table des règles de tabulations est introduite par un bloc de code $0A. Chaque
règle de tabulations comporte 18 octets plus 2 flags. Chaque bit consécutif de
ces 18 octets correspond à l'état d'une graduation, 0 pour inactif et 1 pour
actif.
La première règle de tabulation répertoriée est inextirpable et constituée comme
suit :
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 00 00 Règle n°0
Toute règle sera activée ($00) ou désactivée ($FF) par son offset 19. La règle
inextirpable aura toujours son offset 18 à $00, les autres règles auront en
offset 18 limage de loffset 19. Il ne peut y avoir deux règles de même effet
dans la table.
Un bloc de règles contient un maximum de 3 règles de tabulation. Si le nombre de
règles de tabulation répertoriées dans un bloc excède 3, une extension de code
$0A et dun bloc de 64 octets est créée, autant de fois qu'il faudra pour
sauvegarder l'intégralité de la table des règles. Un bloc de règles est
complété avec la valeur $FF.
Les graphiques
Chaque nouveau graphique est introduit par un bloc de code $0E. Suivent le numéro du
graphique sur 16 bits (de 1 à 255), trois octets à 0 puis le graphique
proprement dit au format standard Thomson débutant par le SCRMOD et les dimensions.
Attention : la compression est tracée pendant linsertion dun graphique sous Paragraphe.
Le chargement cesse alors dès la rencontre du premier terminateur $0000 chargé.
Un fichier Paragraphe peut ne pas comporter de blocs de graphiques. Il ne peut y
avoir de bloc vide de graphique.
Si la longueur d'un graphique dépasse la taille dun
bloc, une extension de code $08 et dun bloc de 64 octets est créée, autant de
fois qu'il faudra pour sauvegarder l'intégralité du graphique. Le dernier bloc
dun graphique est complété par des 0.
La clôture du fichier
Le code $00 clôt le fichier. Il nest suivi daucun bloc.
|