blob: 71730ea4391c656dbd1f5f3ae4cbbab0ea310200 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#include "gpsim_assert.h"
unsigned char failures=0;
unsigned int aint0 = 0;
unsigned int aint1 = 0;
unsigned char achar0 = 0;
unsigned char achar1 = 0;
void
done()
{
ASSERT(MANGLE(failures) == 0);
PASSED();
}
void switch1(void)
{
switch(achar0) {
case 0:
achar0 = 9;
break;
case 1:
achar0 = 18;
break;
default:
achar0 = 0;
}
}
void switch2(void)
{
switch(achar1) {
case 0: achar0 = 9; break;
case 1: achar0 = 8; break;
case 2: achar0 = 7; break;
case 3: achar0 = 6; break;
case 4: achar0 = 5; break;
case 5: achar0 = 4; break;
case 6: achar0 = 3; break;
case 7: achar0 = 2; break;
case 8: achar0 = 1; break;
case 9: achar0 = 0; break;
case 10: achar0 = 9; break;
case 11: achar0 = 8; break;
case 12: achar0 = 7; break;
default: achar0 = 0xff; break;
}
}
void main(void)
{
achar0 = 0;
switch1();
if(achar0 != 9)
failures++;
switch1();
if(achar0 != 0)
failures++;
achar0++;
switch1();
if(achar0 != 18)
failures++;
for(achar1=0; achar1<10;achar1++){
switch2();
if(achar0 != (9-achar1))
failures++;
}
done();
}
|