* Makefile.in, configure.in, configure,
[fw/sdcc] / support / regression / tests / sfr16.c
index 81ea7ad844540b7439a227991898f24e2d28cb8a..0c345b19c1183eb765132551e5118f346c324a99 100644 (file)
@@ -5,29 +5,38 @@
 #include <testfwk.h>
 
 #if defined (SDCC_mcs51)
-sfr at 0x8A TL0; //timer 0 low byte
-sfr at 0x8C TH0; //timer 0 high byte
-
-sfr16 at 0x8C8A TMR0; //timer 0
+  sfr at 0x8A SFR_LSB;        //timer 0 low byte
+  sfr at 0x8C SFR_MSB;        //timer 0 high byte
+  sfr16 at 0x8C8A SFR_16;     //timer 0
+  sfr32 at 0x8C8ACDCC SFR_32; //timer 0 & 2
+#elif defined (SDCC_ds390)
+  sfr at 0x8B SFR_LSB;        //timer 1 low byte
+  sfr at 0x8D SFR_MSB;        //timer 1 high byte
+  sfr16 at 0x8D8B SFR_16;     //timer 1
+  sfr32 at 0x8D8BCDCC SFR_32; //timer 1 & 2
 #endif
 
 void
 test_sfr(void)
 {
-#if defined (SDCC_mcs51)
-  TMR0 = 0x00FE;
-  ASSERT (TH0 == 0x00);
-  ASSERT (TL0 == 0xFE);
+#if defined (SFR_16)
+  SFR_16 = 0x00FE;
+  ASSERT (SFR_MSB == 0x00);
+  ASSERT (SFR_LSB == 0xFE);
+
+  SFR_16++;
+  ASSERT (SFR_MSB == 0x00);
+  ASSERT (SFR_LSB == 0xFF);
 
-  TMR0++;
-  ASSERT (TH0 == 0x00);
-  ASSERT (TL0 == 0xFF);
+  SFR_16++;
+  ASSERT (SFR_MSB == 0x01);
+  ASSERT (SFR_LSB == 0x00);
 
-  TMR0++;
-  ASSERT (TH0 == 0x01);
-  ASSERT (TL0 == 0x00);
+  SFR_LSB++;
+  ASSERT (SFR_16 == 0x0101);
 
-  TL0++;
-  ASSERT (TMR0 == 0x0101);
+  SFR_32 = 0x12345678;
+  SFR_32 -= 0x02040608;
+  ASSERT (SFR_32 == 0x10305070);
 #endif
 }