The complements of an article are defined in four data structures:

1.
Array of Descriptives - Array of 3000 descriptives of articles and complements with 16 characters each.
3000x16 bytes
They are the same descriptives that are been used for the articles, in order to make the terminal distinguish the complements pages correctly, before the first complements page we must place a descriptive which contains: "COMPLEMENTOS    " and after the last complements page we must place a descriptive with contains: COMPLEMENTOS FIM" (Complements End)
Each complements page consist s in one or more descriptives in consecutive positions. An empty descriptive indicates the end of a page.

2.
Type of page - Array of 256 itmes of 8 bits
256 bytes
Possible types:
1 - Indicator for pages with exclusive chose options(Ex. Double/Simple)
5 - Indicator for pages with multiple chose options (Example With Cream/Cold Cup)
0 - End of the complements for this article

3.
Indicator for the page - Array of 256 items of 32 bits
256x4 bytes
It contains the index of the firts descriptive of the complements page.

The buffers for these data structures are sent to the terminals by a routine already used to transmit the descriptives of the articles. The positions' map is as it follows:

4.
Index of the list of Indicators/Types of pages for each article - Array of 3040 items of 8 bits

Positions' map


0 a 9

Reserved


11 a 13

NOT USED


14

"Table"


15

"Meal Dish Qtd"


16

"Sending"


17

NOT USED


18

NOT USED


19

"Number of People" or "PLACE"


20

"Other"


21 a 27

Name of the Fonctions "Other"


28 a 29

"Reserved"


30

Payment Methods


31

"Print y/n"


32

Prompt "?" ( By default )


33 a 3071

Descriptives of the articles from 1 to 3039


3072

1 - Order


3073

2 - Annulation


3074

3 - Subtotal


3075

4 - Bill


3076

5 - Transferences


3077

6 - Partial Payment


3078

7 - Other


3079

8 - Discount


9
9 - Configuration


3080

1 - Control


3081

2 - License


3082

3 - Config.A


3083

4 - Config.B


3084

5 - Config.C


3085

6 - Receive PLUs


3086

7 - Clear PLUs


10
8 - Send PLUs+C


3087

Desist [Enter]




3088
Array of pages
(type of)
bytes 0 to 15

(...)
(...)

3103
bytes 240 to 255




3104
Array of pages
(indicator for)
items of 32 bits 0 to 3

(...)
(...)

3167
items of 32 bits 252 to 255




3168
Index in the array of pages for each article bytes 0 a 15

(...)
(..)

3358
bytes 1024 to 1039




3999
4 bytes c/ lo number of desciptives to receive



Example:

Coffee [short or large] [in a cold cup and/or double and/or with cream]

Descriptives

100    COFFEE
101    TEA
102    BARLEY
103

499    COMPLEMENTOS
500    LARGE
501    SHORT
502
503    COLD CUP
504    DOUBLE
505    WITH CREAM
506
999    COMPLEMENTOS FIM

3088    0,   1,   5,  0,0,0,0,0,0,0,0,0,0,0,0,0
        (8 bits,  complents pages for COFFEE - types)

3104    0, 500, 503,  0
        (32 bits, complements pages for COFFEE -indicators)

3168    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        (index for the PLUs from 0 to 15)

...
3174    0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
        (index for the PLUs 96 to 111, the 101 is the COFFEE,

         the index 1 for COFFEE indicates that the pages that are places from the position 1 of the array are aplicated to         COFFEE