-//#include "p16c84.h"
+#include "gpsim_assert.h"
-unsigned char success=0;
-unsigned char failures=0;
-unsigned char dummy=0;
+unsigned char failures = 0;
-bit bit0 = 0;
-unsigned int aint0 = 0;
-unsigned int aint1 = 0;
-unsigned char achar0 = 0;
-unsigned char achar1 = 0;
+unsigned char uchar0=0;
+unsigned char uchar1=0;
+unsigned char uchar2=0;
-void done()
-{
-
- dummy++;
-
-}
-
-void bool_or1(void)
-{
-
- if( (achar0 >0) || (achar1 >0 ))
- failures++;
-}
-
-void bool_or2(void)
-{
-
- if( achar0 || achar1)
- failures++;
-}
-void bool_test1(void)
+void
+done()
{
-
- if( (achar0==0) || achar1)
- failures++;
+ ASSERT(MANGLE(failures) == 0);
+ PASSED();
}
-
-void bool_test2(void)
+/*
+void incptr(unsigned char *ucP)
{
-
- if( (achar0==0) || aint0)
- failures++;
+ *ucP = *ucP + 1;
}
+*/
-void bool_and1(void)
+void inc(unsigned char k)
{
-
- if( achar0 && achar1)
- failures++;
+ uchar0 = uchar0 + k;
}
-void bin_or1(void)
+void f1(void)
{
- char t;
-
- t = achar0 | achar1;
- if(t)
- failures++;
+ uchar2++;
}
-void bin_xor1(void)
+void nested_call(unsigned char u)
{
- if(achar0 ^ achar1)
- failures++;
-}
-
+ f1();
+ uchar1 = uchar1 + u;
+ inc(uchar1);
-void bool_test3(void)
-{
-
- if((achar0 == 0x42) || (achar1 == 42))
- failures++;
}
+ // uchar1 = uchar1 + uchar0;
+ // uchar2 = uchar1 + k;
-
-void bool_or_lit1(void)
+void main(void)
{
- achar0 |= 0x0f;
-
- if(achar0 > 0x10)
+ uchar0=1;
+ //incptr(&uchar0);
+ inc(uchar0);
+ if(uchar0 !=2)
failures++;
- if( (achar0 | 0x10) > 0xf0)
- failures++;
-
-}
-
-void bool_and_lit1(void)
-{
-
- achar0 &= 0xf0;
-
- if(achar0 > 0x10)
- failures++;
+ uchar0 = 2;
+ uchar1 = 1;
+ uchar2 = 1;
+ nested_call(uchar2);
- if( (achar0 & 0x10) > 0xf0)
+ if(uchar0 !=4)
failures++;
- achar0 &= 0xef;
-
-}
-
-void main(void)
-{
-
- bool_or1();
- bool_or2();
- bool_and1();
- bin_or1();
- bin_xor1();
-
- achar0++;
- bool_and1();
- bool_test1();
- bool_test2();
- bool_test3();
-
-
- achar0--; achar1++;
- bool_and1();
-
- achar0=0;
- achar1=0;
-
- bool_or_lit1();
- bool_and_lit1();
-
- success = failures;
done();
}