Les compléments d'un article sont définis dans quatre structures de données.

1.
Array de Descrpiteurs - Array de 3000 descripteurs des articles et des compléments avec 16 caractères chaqu'un d'eux.
3000x16 bytes
Il s'agit des mêmes descripteurs qui sont en train d'être utilisés pour les articles. Pour que le terminal puisse distinguer correctement les pages des compléments, avant la première page des compléments on doit placer un descripteur qui contient "COMPLEMENTOS    " et après la dernière page des compléments on doit placer un descripteur qui contient: "COMPLEMENTOS FIM"
Chaque page des compléments suppose un ou plusieurs descripteurs dans des positions consécutives. Un descripteur vide indique la fin d'une page.

2.
Type de page - Array de 256 élements de 8 bits
256 bytes
Types possibles:
1 - Indicateur qui signale la page contenant des options de choix unique(Ex. Long/Court)
5 - Indicateur pour une page avec des options de choix multiple(Exemple: Avec de la Crème/Dans une tasse froide)
0 - Fin des compléments pour cet article

3.
Indicateur pour la page- Array de 256 éléments de 32 bits
256x4 bytes
Cela contient l'index du premier descripteur de la page des compléments.

Les buffers pour ces structures des données sont envoyés aux terminaux à travers la routine déjà utilisée pour transmettre les descripteurs des articles. La carte des positions devient la suivante:

4.

Index de la liste des Indicateurs/Types des pages pour chaque article - Array de 3040 éléments de 8 bits

Carte des positions:


0 a 9

Reservées


11 a 13

NON PAS UTILISÉ


14

"Table"


15

"Plat Qté"


16

"En envoyant"


17

NON PAS UTILISÉ


18

NON PAS UTILISÉ


19

"Nº Personnes" ou "PLACE"


20

"Autres"


21 a 27

Nom de la Fonction "Autres"


28 a 29

"Reservés"


30

Méthodes de Paiement


31

"Imprime o/n"


32

Prompt "?" ( Par défaut )


33 a 3071

Descripteurs des articles de 1 à 3039


3072

1 -Commande (Ordre)


3073

2 - Annulation


3074

3 - Soustotal


3075

4 -Addition


3076

5 - Transférences


3077

6 - Paiement Partiel


3078

7 - Autres


3079

8 - Réduction


9
9 - Configuration


3080

1 - Commande (terminal)


3081

2 - License


3082

3 - Config.A


3083

4 - Config.B


3084

5 - Config.C


3085

6 - Recevoir PLUs


3086

7 - Effacer PLUs


10
8 - Envoyer PLUs+C


3087

Renoncer [Enter]




3088
Array des pages
(type de)
bytes 0 a 15

(...)
(...)

3103
bytes 240 a 255




3104
Array des pages
(indicateur pour)
éléments de 32 bits 0 a 3

(...)
(...)

3167
éléments de 32 bits 252 a 255




3168
Index dans l'array des pages pour chaque article bytes 0 à 15

(...)
(..)

3358
bytes 1024 à 1039




3999
4 bytes avec le nombre des descripteurs à recevoir



Exemple:

Café [long ou court] [dans tasse froide et/ou double et/ou avec de la crème]

Descripteurs

100    CAFÉ
101    THÉ
102    ORGE
103

499    COMPLÉMENTS
500    LONG
501    COURT
502
503    DANS TASSE FROIDE
504    DOUBLE
505    AVEC DE LA CRÈME
506
999    COMPLEMENTOS FIM

3088    0,   1,   5,  0,0,0,0,0,0,0,0,0,0,0,0,0
        (8 bits,  pages des compléments pour le CAFÉ - types)

3104    0, 500, 503,  0
        (32 bits, pages des compléments pour le CAFÉ - indicateurs)

3168    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        (index pour les plus de 0 à 15)

...
3174    0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
        (index pour les PLUs 96 à 111, le 101 c'est le CAFÉ,

         l'index 1 pour CAFÉ indique que au CAFÉ on applique les pages à partir de la position 1 de l'array