add ballboard commands on mainboard
[aversive.git] / projects / microb2009 / tests / encoders_at90s2313 / encoders.S
1         ;; PIND = X X X SEL A1 B1 A2 B2
2         
3         ;; r2 -> codeur 1
4         ;; r3 -> codeur 2
5
6         ;; r17 -> codAB
7         ;; r5 -> codAB_prec
8         ;; r18 -> 0
9         
10 .global main
11
12         .type   main, @function
13 main:
14         ;; DDRB = 0xFF, en sortie
15         ldi r24,lo8(-1)
16         out 55-0x20,r24
17
18         ;; on initialise à 0 les registres
19         ldi r17,0
20         ldi r18,0
21         ldi r30,0
22         ldi r31,1
23         mov r5,r30
24         mov r2,r30
25         mov r3,r30
26
27         
28         ;; Etapes :
29         ;; Lit le port
30         ;; Saute à l'adresse PORT * 2 + offset
31         ;; Saute a la routine d'incrément qui va bien
32         ;; Met a jour la sortie
33         ;; Retourne au début
34 boucle:
35         ;; 1 cycle
36         out 56-0x20,r2
37
38         ;; r5 va contenir l'etat precedent de codAB, décalé de 4 vers la gauche
39         ;; 1 cycle
40         mov r5,r17
41         ;; 1 cycle
42         swap r5
43                 
44         ;; Lit le pinD (les 4 LSB) dans r17
45         ;; 1 cycle
46         in r17,48-0x20
47         ;; 1 cycle
48         cbr r17,0xF0
49
50         ;; on le place dans r0
51         ;; 1 cycle
52         mov r0, r17
53
54         ;; on y additionne l'etat precedent (r5)
55         ;; 1 cycle
56         add r0,r5
57         
58         ;; On met tout ça dans Z (r30/r31)
59         ;; 1 cycle
60         mov r30,r0
61
62         ;; On saute à l'adresse du tableau
63         ;; 2 cycles
64         ijmp
65
66
67         
68 moins_moins:    
69         ;; 1 cycle
70         dec r2
71         ;; 2 cycles
72         rjmp boucle
73 moins_zero:
74         dec r2
75         rjmp boucle
76 moins_plus:
77         dec r2
78         rjmp boucle
79
80 zero_moins:
81         rjmp boucle
82 zero_zero:
83         rjmp boucle
84 zero_plus:
85         rjmp boucle
86
87 plus_moins:
88         inc r2
89         rjmp boucle
90 plus_zero:
91         inc r2
92         rjmp boucle
93 plus_plus:
94         inc r2
95         rjmp boucle
96
97
98
99 ; lecture_sel:  
100 ;       ;; Lit le pinD dans r6 pour récupérer le bit SEL
101 ;       in r6,48-0x20
102
103 ;       ;; Passe l'instruction suivante si le bit de sel est 0
104 ;       ;; (skip if bit in register is cleared)
105 ;       sbrc r6,4
106 ;       rjmp cpt2
107
108 ; cpt1:
109 ;       out 56-0x20,r2
110 ;       rjmp boucle
111
112 ; cpt2: 
113 ;       out 56-0x20,r3
114 ;       rjmp boucle
115
116
117
118 .org 0x1DE
119 tableau:
120
121         ;; VAL =   0 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   0   0
122         ;; 2 cycles
123         rjmp zero_zero
124
125         ;; VAL =   1 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   0   1
126         rjmp zero_plus
127
128         ;; VAL =   2 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   0   3
129         rjmp zero_moins
130
131         ;; VAL =   3 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   0   2
132         rjmp zero_zero
133
134         ;; VAL =   4 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   1   0
135         rjmp plus_zero
136
137         ;; VAL =   5 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   1   1
138         rjmp plus_plus
139
140         ;; VAL =   6 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   1   3
141         rjmp plus_moins
142
143         ;; VAL =   7 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   1   2
144         rjmp plus_zero
145
146         ;; VAL =   8 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   3   0
147         rjmp moins_zero
148
149         ;; VAL =   9 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   3   1
150         rjmp moins_plus
151
152         ;; VAL =  10 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   3   3
153         rjmp moins_moins
154
155         ;; VAL =  11 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   3   2
156         rjmp moins_zero
157
158         ;; VAL =  12 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   2   0
159         rjmp zero_zero
160
161         ;; VAL =  13 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   2   1
162         rjmp zero_plus
163
164         ;; VAL =  14 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   2   3
165         rjmp zero_moins
166
167         ;; VAL =  15 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   0   2   2
168         rjmp zero_zero
169
170         ;; VAL =  16 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   0   0
171         rjmp zero_moins
172
173         ;; VAL =  17 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   0   1
174         rjmp zero_zero
175
176         ;; VAL =  18 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   0   3
177         rjmp zero_zero
178
179         ;; VAL =  19 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   0   2
180         rjmp zero_plus
181
182         ;; VAL =  20 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   1   0
183         rjmp plus_moins
184
185         ;; VAL =  21 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   1   1
186         rjmp plus_zero
187
188         ;; VAL =  22 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   1   3
189         rjmp plus_zero
190
191         ;; VAL =  23 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   1   2
192         rjmp plus_plus
193
194         ;; VAL =  24 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   3   0
195         rjmp moins_moins
196
197         ;; VAL =  25 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   3   1
198         rjmp moins_zero
199
200         ;; VAL =  26 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   3   3
201         rjmp moins_zero
202
203         ;; VAL =  27 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   3   2
204         rjmp moins_plus
205
206         ;; VAL =  28 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   2   0
207         rjmp zero_moins
208
209         ;; VAL =  29 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   2   1
210         rjmp zero_zero
211
212         ;; VAL =  30 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   2   3
213         rjmp zero_zero
214
215         ;; VAL =  31 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   1   2   2
216         rjmp zero_plus
217
218         ;; VAL =  32 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   0   0
219         rjmp zero_plus
220
221         ;; VAL =  33 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   0   1
222         rjmp zero_zero
223
224         ;; VAL =  34 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   0   3
225         rjmp zero_zero
226
227         ;; VAL =  35 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   0   2
228         rjmp zero_moins
229
230         ;; VAL =  36 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   1   0
231         rjmp plus_plus
232
233         ;; VAL =  37 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   1   1
234         rjmp plus_zero
235
236         ;; VAL =  38 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   1   3
237         rjmp plus_zero
238
239         ;; VAL =  39 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   1   2
240         rjmp plus_moins
241
242         ;; VAL =  40 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   3   0
243         rjmp moins_plus
244
245         ;; VAL =  41 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   3   1
246         rjmp moins_zero
247
248         ;; VAL =  42 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   3   3
249         rjmp moins_zero
250
251         ;; VAL =  43 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   3   2
252         rjmp moins_moins
253
254         ;; VAL =  44 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   2   0
255         rjmp zero_plus
256
257         ;; VAL =  45 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   2   1
258         rjmp zero_zero
259
260         ;; VAL =  46 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   2   3
261         rjmp zero_zero
262
263         ;; VAL =  47 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   3   2   2
264         rjmp zero_moins
265
266         ;; VAL =  48 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   0   0
267         rjmp zero_zero
268
269         ;; VAL =  49 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   0   1
270         rjmp zero_moins
271
272         ;; VAL =  50 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   0   3
273         rjmp zero_plus
274
275         ;; VAL =  51 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   0   2
276         rjmp zero_zero
277
278         ;; VAL =  52 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   1   0
279         rjmp plus_zero
280
281         ;; VAL =  53 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   1   1
282         rjmp plus_moins
283
284         ;; VAL =  54 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   1   3
285         rjmp plus_plus
286
287         ;; VAL =  55 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   1   2
288         rjmp plus_zero
289
290         ;; VAL =  56 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   3   0
291         rjmp moins_zero
292
293         ;; VAL =  57 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   3   1
294         rjmp moins_moins
295
296         ;; VAL =  58 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   3   3
297         rjmp moins_plus
298
299         ;; VAL =  59 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   3   2
300         rjmp moins_zero
301
302         ;; VAL =  60 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   2   0
303         rjmp zero_zero
304
305         ;; VAL =  61 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   2   1
306         rjmp zero_moins
307
308         ;; VAL =  62 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   2   3
309         rjmp zero_plus
310
311         ;; VAL =  63 -  C1(t-1) C2(t-1) C1 C2 (naturel)   0   2   2   2
312         rjmp zero_zero
313
314         ;; VAL =  64 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   0   0
315         rjmp moins_zero
316
317         ;; VAL =  65 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   0   1
318         rjmp moins_plus
319
320         ;; VAL =  66 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   0   3
321         rjmp moins_moins
322
323         ;; VAL =  67 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   0   2
324         rjmp moins_zero
325
326         ;; VAL =  68 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   1   0
327         rjmp zero_zero
328
329         ;; VAL =  69 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   1   1
330         rjmp zero_plus
331
332         ;; VAL =  70 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   1   3
333         rjmp zero_moins
334
335         ;; VAL =  71 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   1   2
336         rjmp zero_zero
337
338         ;; VAL =  72 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   3   0
339         rjmp zero_zero
340
341         ;; VAL =  73 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   3   1
342         rjmp zero_plus
343
344         ;; VAL =  74 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   3   3
345         rjmp zero_moins
346
347         ;; VAL =  75 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   3   2
348         rjmp zero_zero
349
350         ;; VAL =  76 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   2   0
351         rjmp plus_zero
352
353         ;; VAL =  77 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   2   1
354         rjmp plus_plus
355
356         ;; VAL =  78 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   2   3
357         rjmp plus_moins
358
359         ;; VAL =  79 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   0   2   2
360         rjmp plus_zero
361
362         ;; VAL =  80 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   0   0
363         rjmp moins_moins
364
365         ;; VAL =  81 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   0   1
366         rjmp moins_zero
367
368         ;; VAL =  82 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   0   3
369         rjmp moins_zero
370
371         ;; VAL =  83 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   0   2
372         rjmp moins_plus
373
374         ;; VAL =  84 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   1   0
375         rjmp zero_moins
376
377         ;; VAL =  85 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   1   1
378         rjmp zero_zero
379
380         ;; VAL =  86 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   1   3
381         rjmp zero_zero
382
383         ;; VAL =  87 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   1   2
384         rjmp zero_plus
385
386         ;; VAL =  88 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   3   0
387         rjmp zero_moins
388
389         ;; VAL =  89 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   3   1
390         rjmp zero_zero
391
392         ;; VAL =  90 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   3   3
393         rjmp zero_zero
394
395         ;; VAL =  91 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   3   2
396         rjmp zero_plus
397
398         ;; VAL =  92 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   2   0
399         rjmp plus_moins
400
401         ;; VAL =  93 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   2   1
402         rjmp plus_zero
403
404         ;; VAL =  94 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   2   3
405         rjmp plus_zero
406
407         ;; VAL =  95 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   1   2   2
408         rjmp plus_plus
409
410         ;; VAL =  96 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   0   0
411         rjmp moins_plus
412
413         ;; VAL =  97 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   0   1
414         rjmp moins_zero
415
416         ;; VAL =  98 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   0   3
417         rjmp moins_zero
418
419         ;; VAL =  99 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   0   2
420         rjmp moins_moins
421
422         ;; VAL = 100 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   1   0
423         rjmp zero_plus
424
425         ;; VAL = 101 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   1   1
426         rjmp zero_zero
427
428         ;; VAL = 102 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   1   3
429         rjmp zero_zero
430
431         ;; VAL = 103 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   1   2
432         rjmp zero_moins
433
434         ;; VAL = 104 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   3   0
435         rjmp zero_plus
436
437         ;; VAL = 105 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   3   1
438         rjmp zero_zero
439
440         ;; VAL = 106 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   3   3
441         rjmp zero_zero
442
443         ;; VAL = 107 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   3   2
444         rjmp zero_moins
445
446         ;; VAL = 108 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   2   0
447         rjmp plus_plus
448
449         ;; VAL = 109 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   2   1
450         rjmp plus_zero
451
452         ;; VAL = 110 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   2   3
453         rjmp plus_zero
454
455         ;; VAL = 111 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   3   2   2
456         rjmp plus_moins
457
458         ;; VAL = 112 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   0   0
459         rjmp moins_zero
460
461         ;; VAL = 113 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   0   1
462         rjmp moins_moins
463
464         ;; VAL = 114 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   0   3
465         rjmp moins_plus
466
467         ;; VAL = 115 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   0   2
468         rjmp moins_zero
469
470         ;; VAL = 116 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   1   0
471         rjmp zero_zero
472
473         ;; VAL = 117 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   1   1
474         rjmp zero_moins
475
476         ;; VAL = 118 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   1   3
477         rjmp zero_plus
478
479         ;; VAL = 119 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   1   2
480         rjmp zero_zero
481
482         ;; VAL = 120 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   3   0
483         rjmp zero_zero
484
485         ;; VAL = 121 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   3   1
486         rjmp zero_moins
487
488         ;; VAL = 122 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   3   3
489         rjmp zero_plus
490
491         ;; VAL = 123 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   3   2
492         rjmp zero_zero
493
494         ;; VAL = 124 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   2   0
495         rjmp plus_zero
496
497         ;; VAL = 125 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   2   1
498         rjmp plus_moins
499
500         ;; VAL = 126 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   2   3
501         rjmp plus_plus
502
503         ;; VAL = 127 -  C1(t-1) C2(t-1) C1 C2 (naturel)   1   2   2   2
504         rjmp plus_zero
505
506         ;; VAL = 128 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   0   0
507         rjmp plus_zero
508
509         ;; VAL = 129 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   0   1
510         rjmp plus_plus
511
512         ;; VAL = 130 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   0   3
513         rjmp plus_moins
514
515         ;; VAL = 131 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   0   2
516         rjmp plus_zero
517
518         ;; VAL = 132 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   1   0
519         rjmp zero_zero
520
521         ;; VAL = 133 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   1   1
522         rjmp zero_plus
523
524         ;; VAL = 134 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   1   3
525         rjmp zero_moins
526
527         ;; VAL = 135 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   1   2
528         rjmp zero_zero
529
530         ;; VAL = 136 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   3   0
531         rjmp zero_zero
532
533         ;; VAL = 137 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   3   1
534         rjmp zero_plus
535
536         ;; VAL = 138 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   3   3
537         rjmp zero_moins
538
539         ;; VAL = 139 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   3   2
540         rjmp zero_zero
541
542         ;; VAL = 140 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   2   0
543         rjmp moins_zero
544
545         ;; VAL = 141 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   2   1
546         rjmp moins_plus
547
548         ;; VAL = 142 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   2   3
549         rjmp moins_moins
550
551         ;; VAL = 143 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   0   2   2
552         rjmp moins_zero
553
554         ;; VAL = 144 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   0   0
555         rjmp plus_moins
556
557         ;; VAL = 145 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   0   1
558         rjmp plus_zero
559
560         ;; VAL = 146 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   0   3
561         rjmp plus_zero
562
563         ;; VAL = 147 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   0   2
564         rjmp plus_plus
565
566         ;; VAL = 148 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   1   0
567         rjmp zero_moins
568
569         ;; VAL = 149 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   1   1
570         rjmp zero_zero
571
572         ;; VAL = 150 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   1   3
573         rjmp zero_zero
574
575         ;; VAL = 151 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   1   2
576         rjmp zero_plus
577
578         ;; VAL = 152 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   3   0
579         rjmp zero_moins
580
581         ;; VAL = 153 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   3   1
582         rjmp zero_zero
583
584         ;; VAL = 154 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   3   3
585         rjmp zero_zero
586
587         ;; VAL = 155 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   3   2
588         rjmp zero_plus
589
590         ;; VAL = 156 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   2   0
591         rjmp moins_moins
592
593         ;; VAL = 157 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   2   1
594         rjmp moins_zero
595
596         ;; VAL = 158 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   2   3
597         rjmp moins_zero
598
599         ;; VAL = 159 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   1   2   2
600         rjmp moins_plus
601
602         ;; VAL = 160 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   0   0
603         rjmp plus_plus
604
605         ;; VAL = 161 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   0   1
606         rjmp plus_zero
607
608         ;; VAL = 162 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   0   3
609         rjmp plus_zero
610
611         ;; VAL = 163 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   0   2
612         rjmp plus_moins
613
614         ;; VAL = 164 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   1   0
615         rjmp zero_plus
616
617         ;; VAL = 165 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   1   1
618         rjmp zero_zero
619
620         ;; VAL = 166 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   1   3
621         rjmp zero_zero
622
623         ;; VAL = 167 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   1   2
624         rjmp zero_moins
625
626         ;; VAL = 168 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   3   0
627         rjmp zero_plus
628
629         ;; VAL = 169 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   3   1
630         rjmp zero_zero
631
632         ;; VAL = 170 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   3   3
633         rjmp zero_zero
634
635         ;; VAL = 171 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   3   2
636         rjmp zero_moins
637
638         ;; VAL = 172 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   2   0
639         rjmp moins_plus
640
641         ;; VAL = 173 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   2   1
642         rjmp moins_zero
643
644         ;; VAL = 174 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   2   3
645         rjmp moins_zero
646
647         ;; VAL = 175 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   3   2   2
648         rjmp moins_moins
649
650         ;; VAL = 176 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   0   0
651         rjmp plus_zero
652
653         ;; VAL = 177 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   0   1
654         rjmp plus_moins
655
656         ;; VAL = 178 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   0   3
657         rjmp plus_plus
658
659         ;; VAL = 179 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   0   2
660         rjmp plus_zero
661
662         ;; VAL = 180 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   1   0
663         rjmp zero_zero
664
665         ;; VAL = 181 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   1   1
666         rjmp zero_moins
667
668         ;; VAL = 182 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   1   3
669         rjmp zero_plus
670
671         ;; VAL = 183 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   1   2
672         rjmp zero_zero
673
674         ;; VAL = 184 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   3   0
675         rjmp zero_zero
676
677         ;; VAL = 185 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   3   1
678         rjmp zero_moins
679
680         ;; VAL = 186 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   3   3
681         rjmp zero_plus
682
683         ;; VAL = 187 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   3   2
684         rjmp zero_zero
685
686         ;; VAL = 188 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   2   0
687         rjmp moins_zero
688
689         ;; VAL = 189 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   2   1
690         rjmp moins_moins
691
692         ;; VAL = 190 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   2   3
693         rjmp moins_plus
694
695         ;; VAL = 191 -  C1(t-1) C2(t-1) C1 C2 (naturel)   3   2   2   2
696         rjmp moins_zero
697
698         ;; VAL = 192 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   0   0
699         rjmp zero_zero
700
701         ;; VAL = 193 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   0   1
702         rjmp zero_plus
703
704         ;; VAL = 194 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   0   3
705         rjmp zero_moins
706
707         ;; VAL = 195 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   0   2
708         rjmp zero_zero
709
710         ;; VAL = 196 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   1   0
711         rjmp moins_zero
712
713         ;; VAL = 197 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   1   1
714         rjmp moins_plus
715
716         ;; VAL = 198 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   1   3
717         rjmp moins_moins
718
719         ;; VAL = 199 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   1   2
720         rjmp moins_zero
721
722         ;; VAL = 200 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   3   0
723         rjmp plus_zero
724
725         ;; VAL = 201 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   3   1
726         rjmp plus_plus
727
728         ;; VAL = 202 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   3   3
729         rjmp plus_moins
730
731         ;; VAL = 203 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   3   2
732         rjmp plus_zero
733
734         ;; VAL = 204 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   2   0
735         rjmp zero_zero
736
737         ;; VAL = 205 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   2   1
738         rjmp zero_plus
739
740         ;; VAL = 206 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   2   3
741         rjmp zero_moins
742
743         ;; VAL = 207 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   0   2   2
744         rjmp zero_zero
745
746         ;; VAL = 208 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   0   0
747         rjmp zero_moins
748
749         ;; VAL = 209 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   0   1
750         rjmp zero_zero
751
752         ;; VAL = 210 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   0   3
753         rjmp zero_zero
754
755         ;; VAL = 211 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   0   2
756         rjmp zero_plus
757
758         ;; VAL = 212 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   1   0
759         rjmp moins_moins
760
761         ;; VAL = 213 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   1   1
762         rjmp moins_zero
763
764         ;; VAL = 214 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   1   3
765         rjmp moins_zero
766
767         ;; VAL = 215 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   1   2
768         rjmp moins_plus
769
770         ;; VAL = 216 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   3   0
771         rjmp plus_moins
772
773         ;; VAL = 217 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   3   1
774         rjmp plus_zero
775
776         ;; VAL = 218 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   3   3
777         rjmp plus_zero
778
779         ;; VAL = 219 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   3   2
780         rjmp plus_plus
781
782         ;; VAL = 220 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   2   0
783         rjmp zero_moins
784
785         ;; VAL = 221 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   2   1
786         rjmp zero_zero
787
788         ;; VAL = 222 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   2   3
789         rjmp zero_zero
790
791         ;; VAL = 223 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   1   2   2
792         rjmp zero_plus
793
794         ;; VAL = 224 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   0   0
795         rjmp zero_plus
796
797         ;; VAL = 225 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   0   1
798         rjmp zero_zero
799
800         ;; VAL = 226 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   0   3
801         rjmp zero_zero
802
803         ;; VAL = 227 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   0   2
804         rjmp zero_moins
805
806         ;; VAL = 228 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   1   0
807         rjmp moins_plus
808
809         ;; VAL = 229 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   1   1
810         rjmp moins_zero
811
812         ;; VAL = 230 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   1   3
813         rjmp moins_zero
814
815         ;; VAL = 231 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   1   2
816         rjmp moins_moins
817
818         ;; VAL = 232 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   3   0
819         rjmp plus_plus
820
821         ;; VAL = 233 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   3   1
822         rjmp plus_zero
823
824         ;; VAL = 234 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   3   3
825         rjmp plus_zero
826
827         ;; VAL = 235 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   3   2
828         rjmp plus_moins
829
830         ;; VAL = 236 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   2   0
831         rjmp zero_plus
832
833         ;; VAL = 237 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   2   1
834         rjmp zero_zero
835
836         ;; VAL = 238 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   2   3
837         rjmp zero_zero
838
839         ;; VAL = 239 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   3   2   2
840         rjmp zero_moins
841
842         ;; VAL = 240 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   0   0
843         rjmp zero_zero
844
845         ;; VAL = 241 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   0   1
846         rjmp zero_moins
847
848         ;; VAL = 242 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   0   3
849         rjmp zero_plus
850
851         ;; VAL = 243 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   0   2
852         rjmp zero_zero
853
854         ;; VAL = 244 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   1   0
855         rjmp moins_zero
856
857         ;; VAL = 245 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   1   1
858         rjmp moins_moins
859
860         ;; VAL = 246 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   1   3
861         rjmp moins_plus
862
863         ;; VAL = 247 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   1   2
864         rjmp moins_zero
865
866         ;; VAL = 248 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   3   0
867         rjmp plus_zero
868
869         ;; VAL = 249 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   3   1
870         rjmp plus_moins
871
872         ;; VAL = 250 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   3   3
873         rjmp plus_plus
874
875         ;; VAL = 251 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   3   2
876         rjmp plus_zero
877
878         ;; VAL = 252 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   2   0
879         rjmp zero_zero
880
881         ;; VAL = 253 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   2   1
882         rjmp zero_moins
883
884         ;; VAL = 254 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   2   3
885         rjmp zero_plus
886
887         ;; VAL = 255 -  C1(t-1) C2(t-1) C1 C2 (naturel)   2   2   2   2
888         rjmp zero_zero
889         
890
891         
892         
893