Applied patch from Kevin L. Pauba that added the #pragma memory declaration feature...
[fw/sdcc] / src / regression / bool1.c
1 #define __16F873
2 #include "p16f873.h"
3 //#include "p16c84.h"
4
5 unsigned char success=0;
6 unsigned char failures=0;
7 unsigned char dummy=0;
8
9 bit bit0 = 0;
10 unsigned int aint0 = 0;
11 unsigned int aint1 = 0;
12 unsigned char achar0 = 0;
13 unsigned char achar1 = 0;
14
15 void done()
16 {
17
18   dummy++;
19
20 }
21
22 void bool_or1(void)
23 {
24
25   if( (achar0 >0) || (achar1 >0 ))
26     failures++;
27 }
28
29 void bool_or2(void)
30 {
31
32   if( achar0 || achar1)
33     failures++;
34 }
35
36 void bool_test1(void)
37 {
38
39   if( (achar0==0) || achar1)
40     failures++;
41 }
42
43
44 void bool_test2(void)
45 {
46
47   if( (achar0==0) || aint0)
48     failures++;
49 }
50
51 void bool_and1(void)
52 {
53
54   if( achar0 && achar1)
55     failures++;
56 }
57
58 void bin_or1(void)
59 {
60
61   char t;
62
63   t = achar0 | achar1;
64   if(t)
65     failures++;
66 }
67
68 void bin_xor1(void)
69 {
70
71   if(achar0 ^ achar1)
72     failures++;
73 }
74
75
76 void bool_test3(void)
77 {
78
79   if((achar0 == 0x42) || (achar1 == 42))
80     failures++;
81 }
82
83
84 void bool_or_lit1(void)
85 {
86
87   achar0 |= 0x0f;
88
89   if(achar0 > 0x10)
90     failures++;
91
92   if( (achar0 | 0x10) > 0xf0)
93     failures++;
94
95 }
96
97 void bool_and_lit1(void)
98 {
99
100   achar0 &= 0xf0;
101
102   if(achar0 > 0x10)
103     failures++;
104
105   if( (achar0 & 0x10) > 0xf0)
106     failures++;
107
108   achar0 &= 0xef;
109
110 }
111
112 void main(void)
113 {
114
115   bool_or1();
116   bool_or2();
117   bool_and1();
118   bin_or1();
119   bin_xor1();
120
121   achar0++;
122   bool_and1();
123   bool_test1();
124   bool_test2();
125   bool_test3();
126
127
128   achar0--; achar1++;
129   bool_and1();
130
131   achar0=0;
132   achar1=0;
133
134   bool_or_lit1();
135   bool_and_lit1();
136
137   success = failures;
138   done();
139 }