Los complementos de un artículo se definen en cuatro estructuras de datos.

1.
Array de Descriptores - Array de 3000 descriptores de los artículos y complementos con 16 caracteres cada uno de ellos.
3000x16 bytes
Se trata de los mismos descriptores que están siendo utilizados para los artículos. Para que el terminal consiga distinguir correctamente las páginas de complementos, antes de la primera página de complementos se debe colocar un descriptor que contenga "COMPLEMENTOS    " y después de la última página de complementos, se debe colocar un descriptor que contenga: "COMPLEMENTOS FIM"
Cada página de complementos consiste en uno o varios descriptores en posiciones consecutivas. Un descriptor vacío indica eç final de una página.

2.
Tipo de página - Array de 256 enteros de 8 bits
256 bytes
Tipos posibles:
1 - Indicador que señala la página que contiene opciones de elección única(Ej. Largo/Corto)
5 - Indicador para una página con opciones de elección múltiple(Ejemplo: Con Nata/En una taza fría)
0 - Fin de los complementos para este artículo

3.
Marcador para la página- Array de 256 enteros de 32 bits
256x4 bytes
Contiene el índice del primer descriptor de la página de complementos.

Los buffers para estas estructuras de datos se envían a los terminales a través de la rutina ya utilzada para transmitir los descriptores de los artículos. El mapa de las posiciones pasa a ser el siguiente:

4.

Índice de la lista de los Marcadores/Tipos de páginas para cada artículo - Array de 3040 enteros de 8 bits

Carte des positions:


0 a 9

Reservados


11 a 13

NO USADO


14

"Mesa"


15

"Plato Cantidad"


16

"Enviando"


17

NO USADO


18

NO USADO


19

"Nº Personas" o "LUGAR"


20

"Otras"


21 a 27

Nombre de la Función "Otras"


28 a 29

"Reservados"


30

Métodos de Pago


31

"Imprime a/n"


32

Prompt "?" ( Por defecto )


33 a 3071

Descriptores de los artículos de 1 a 3039


3072

1 -Pedido


3073

2 - Anulación


3074

3 - Subtotal


3075

4 - Cuenta


3076

5 - Transfencias


3077

6 - Pago Parcial


3078

7 - Otros


3079

8 - Reducción


9
9 - Configuración


3080

1 - Mando


3081

2 - Licencia


3082

3 - Config.A


3083

4 - Config.B


3084

5 - Config.C


3085

6 - Recibir PLUs


3086

7 - Borrar PLUs


10
8 - Enviar PLUs+C


3087

Desistir [Enter]




3088
Array de las páginas
(tipo de)
bytes 0 a 15

(...)
(...)

3103
bytes 240 a 255




3104
Array de las páginas
(indicador para)
elementos de 32 bits 0 a 3

(...)
(...)

3167
elementos de 32 bits 252 a 255




3168
Índice en el array de páginas para cada artículo bytes 0 a 15

(...)
(..)

3358
bytes 1024 a 1039




3999
4 bytes con el número de descriptores por recibir



Ejemplo:

Café [largo o corto] [en taza fría y/o doble y/o con nata]

Descriptores

100    CAFÉ
101    TÉ
102    CEBADA
103

499    COMPLEMENTOS
500    LARGO
501    CORTO
502
503    EN TAZA FRÍA
504    DOBLE
505    CON NATA
506
999    COMPLEMENTOS FIM

3088    0,   1,   5,  0,0,0,0,0,0,0,0,0,0,0,0,0
        (8 bits,  páginas de complementos para el CAFÉ - tipos)

3104    0, 500, 503,  0
        (32 bits, páginas de complementos para el CAFÉ - indicadores)

3168    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        (índice para los plus de 0 a 15)

...
3174    0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
        (índice para los PLUs 96 a 111, el 101 es el CAFÉ,

         El ínidice 1 para el CAFÉ indica que al CAFÉ se le aplican las páginas a partuir de la posición 1 del array