Imported Upstream version 2.9.0
[debian/cc1111] / support / regression / tests / sfr16.c
1 /*
2    sfr16.c
3 */
4
5 #include <testfwk.h>
6
7 #if defined (SDCC_mcs51)
8   sfr at 0x8A SFR_LSB;        //timer 0 low byte
9   sfr at 0x8C SFR_MSB;        //timer 0 high byte
10   sfr16 at 0x8C8A SFR_16;     //timer 0
11   sfr32 at 0x8C8ACDCC SFR_32; //timer 0 & 2
12 #elif defined (SDCC_ds390)
13   sfr at 0x8B SFR_LSB;        //timer 1 low byte
14   sfr at 0x8D SFR_MSB;        //timer 1 high byte
15   sfr16 at 0x8D8B SFR_16;     //timer 1
16   sfr32 at 0x8D8BCDCC SFR_32; //timer 1 & 2
17 #endif
18
19 void
20 test_sfr(void)
21 {
22 #if defined (SFR_16)
23   SFR_16 = 0x00FE;
24   ASSERT (SFR_MSB == 0x00);
25   ASSERT (SFR_LSB == 0xFE);
26
27   SFR_16++;
28   ASSERT (SFR_MSB == 0x00);
29   ASSERT (SFR_LSB == 0xFF);
30
31   SFR_16++;
32   ASSERT (SFR_MSB == 0x01);
33   ASSERT (SFR_LSB == 0x00);
34
35   SFR_LSB++;
36   ASSERT (SFR_16 == 0x0101);
37
38   SFR_32 = 0x12345678;
39   SFR_32 -= 0x02040608;
40   ASSERT (SFR_32 == 0x10305070);
41 #endif
42 }