* support/scripts/sdcc.nsi:
[fw/sdcc] / src / regression / inline.c
index 893441e38be489f3948665b99599daad1619ee6f..3198d99f09293d5918f3d61d5302ec3efdf2d22a 100644 (file)
@@ -1,38 +1,58 @@
-unsigned char success=0;
+#include "gpsim_assert.h"
+#include "picregs.h"
+
+#pragma preproc_asm -
+
 unsigned char failures=0;
-unsigned char dummy=0;
 
 unsigned char test_tris=0;
 
-#define PORTA_ADR  5
-#define PORTB_ADR  6
-#define TRISA_ADR  0x85
-#define TRISB_ADR  0x86
-
-data at TRISA_ADR unsigned char  TRISA;
+void
+done()
+{
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
+}
 
-void done(void)
+void
+delay_1ms(void)
 {
+  unsigned char cnt1m = 2;
+  unsigned char cnt500u = 249;
+
+  do {
+    do {
+      _asm
+        nop
+        nop
+      _endasm;
+    } while (--cnt500u > 0);
+  } while (--cnt1m > 0);
+}
 
-  dummy++;
 
-}
 void main(void)
 {
-  dummy = 0;
-
   TRISA = 0x0f;
 
+#if defined(__pic14)
   _asm
     BSF   STATUS,RP0
     MOVF  TRISA,W
     BCF   STATUS,RP0
     MOVWF _test_tris
   _endasm;
+#else   // !defined(__pic14)
+  _asm
+    BANKSEL _TRISA
+    MOVF    _TRISA,W
+    BANKSEL _test_tris
+    MOVWF   _test_tris
+  _endasm;
+#endif  // !defined(__pic14)
 
   if(test_tris != 0x0f)
     failures++;
 
-  success = failures;
   done();
 }